ASP.NETMVC2モデルによる検証(2)カスタム検証
ASP.NETMVC2モデルによる検証(1) に書いたデフォルトの検証属性では検証できない場合、
独自の検証ロジックを実装するやり方があります。
それがカスタム検証です。
先の検証属性と同様に、モデルに属性を付与することで実装し、サーバー側で実行される検証となります。
◆カスタム検証の実装例
では、カスタム検証の実装例です。まずは独自の検証ロジックを実装するクラスを用意します。
このクラスの実装にはいくつかルールがあります。
1.クラス名は「属性名」+「Attribute」。(必須)
2.ValidationAttribute クラスを継承する。 (必須)
3.IsValid()メソッドをオーバーライドし、検証ロジックを実装する。 (必須)
4.属性のパラメータは、クラスのプロパティとする。(任意)
この例ではLengthプロパティで指定された数値と、
画面で入力した値(IsValid()の引数value)の文字数を比較し、
入力した文字数が多い場合はエラーとしています。
次に、上で定義した検証ロジックを、モデルの属性として定義します。
属性名は、検証ロジックのクラス名より「Attribute」を取り除いたモノです(この例ではIdLenght)。
またプロパティに値を定義しています(Lengthプロパティにint型の 5 を与えている)。
実際に実行してみると・・・
カスタム検証のIsValid()が実行されます。