Integration with ASP.NET MVCドキュメントに従って、FluentValidation を ASP.NET MVC 3 に正常にプラグインしました。
簡単な方法は、次のように、FluentValidation を Global.asax Application_Start() の MVC 検証フレームワークにプラグインすることです。
FluentValidationModelValidatorProvider.Configure();
次に、使用するバリデーターを指定して、POCO クラスを属性で装飾できます。
[Validator(typeof(PersonValidator))]
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
}
私の場合、私はそれをしたくありませんでした (属性を使用します)。実際には、ビジネス ルールに応じて、異なるバリデーターに対して同じ POCO クラスを検証する必要がありました。
そのように異なるバリデーターを選択したい場合は、「IoC コンテナーを使用したカスタムバリデーターファクトリー」のドキュメントに従ってください。インターフェース IValidatorFactory を実装する、ValidatorFactoryBase をサブクラス化するクラス FluentMvcValidatorFactory を作成します。カスタム バリデータ ファクトリは、適切なバリデータの選択を処理できます。
私はクライアント側の検証を機能させようとしていましたが(実際に機能しました)、目立たない検証にもプラグインしているようです。私のhtmlは次のように出力されます:
<input type="text" value="" name="Email" id="Email" data-val-length-max="128" data-val-length="&#39;Email&#39; must be between 0 and 128 characters." data-val-email="&#39;Email&#39; is not a valid email address." data-val="true" class="text-box single-line">
MVC に正しくプラグインしている限り、控えめに動作するはずです。
実際には、クライアント側または目立たない検証に完全に依存するべきではなく、入力中にユーザーを支援するためにのみ使用してください。最終的にはサーバーで検証する必要がありますが、サーバー側のコードで同じ FluentValidation バリデーターを使用することができます。