書くとき
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
ボンネットの下でどのような変化が起こりますか?
フォーム要素のイベントに関数が追加されることを期待しています。
書くとき
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
ボンネットの下でどのような変化が起こりますか?
フォーム要素のイベントに関数が追加されることを期待しています。
簡単に言えば、Javascript を使用します。各要素は、実行する検証のタイプを示すデータ属性で装飾されています。フォームが送信されると、javascript が起動され、バリデーターによる検証用にマークされたすべての要素が実行されます。
通常どおり、同じ検証がサーバーで再度実行されます。
これを参照してください (非常に良い記事): Unobtrusive Client Validation in ASP.NET MVC 3
同じものからいくつかの抜粋:
MVC 3 には、目立たない JavaScript モードをオンにする単一のフラグがあり、目立たない Ajax と目立たないクライアント検証の両方を有効にします。MVC 1.0 および MVC 2 からアップグレードされたプロジェクトとの下位互換性のために、控えめな JavaScript モードはデフォルトでオフになっています。ただし、MVC 3 プロジェクト テンプレートではオンになっているため、新しいプロジェクトではデフォルトで控えめな JavaScript サポートが使用されます。さらに、クライアント側の検証を有効にする必要があります (デフォルトではオフのままです)。
JSON を、入力フィールドに添付されるバリデーターを記述する HTML 5 互換の属性に置き換えました。また、いくつかの HTML 属性を検証メッセージ スパンに添付して、それらが添付されている入力フィールドに関連付けることができるようにしました。
<label for="FirstName">FirstName</label>
<input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>