ASP.NET MVC 2 モデルによる検証(1)検証属性
以前の記事で、Mode-View-Controllerパターンのモデルはビジネスロジックやデータの取得・更新処理を実装すると書きました。
ASP.NET MVC 2 では、ビジネスロジックの一つである入力値の検証を、モデルに実装することができます。
今回はデフォルトで用意されている検証をについて纏めてみます。
◆デフォルトの検証属性
ASP.NET MVC 2 では、検証を属性という形で定義します。(詳細は後ほどソースの例を書きます)
デフォルトで用意されている検証属性は以下の通りです。
・StringLength
→データフィールドの最大文字数を指定する。
・Required
→データフィールドを入力必須に指定する。
・RegularExpression
→データフィールドの入力パターンを正規表現で指定する。
・Range
→データフィールドの入力範囲を指定する。
・DataType
→データフィールドに値の型を指定する。
◆検証属性の実装例
では、デフォルトの検証属性を使用したソースの例です。
検証対象の入力値を格納するモデルのプロパティに、属性を付与することで実装します。
まずは、画面のHTMLです。Html.ValidationMessageFor(model => model.Name) のように
検証属性が返すエラーメッセージの表示箇所を指定しています。
次にモデルです。画面の入力値を格納するプロパティに、検証属性を付与しています。
属性は、[属性名(プロパティ or エラーメッセージ)] という形になります。
そして画面より入力値を受け取るコントローラでは、ModelState.IsValid()プロパティを参照してエラーを判定します。
このコントローラの例では、エラーの場合は return View(entry) で画面をそのまま表示しています。
画面を表示すると、モデルの検証属性で定義したエラーメッセージが表示されます。
実際に実行してみた結果が、以下の画面です。