ブラウザからサーバー間の不必要なラウンドトリップを現象させ、ユーザビリティを高めるために ASP.NET MVC の Client Side Validation を有効にすることはよくあります。今回、ASP.NET MVC において、モデルクラスの特定のプロパティをクライアントサイドの検証から除外したいことがあったのでやり方を調べてみました。
検証環境
- ASP.NET MVC3
1. モデルの特定のプロパティに対する Client Side Validation を無効化する
クライアントサイド検証は 属性に data-val = "true" となっているフォーム要素に対して行われます。なので、Viewに、次のように data_val="false" というhtmlの属性情報に設定することでクライアントサイドのバリデーションを無効化できます。data_val という追加の属性は data-val に置き換えられて出力されます。
@Html.LabelFor(x => x.Property1) @Html.ValidationMessageFor(m => m.Body)<br /> @Html.TextAreaFor(x => x.Property1 new { @data_val = "false"})
サンプルでは textarea に対して 検証を無効化しています。
2. まとめ
説明は以上です。間違いや質問があればご連絡ください。