私は流暢な検証とninjectを使用してASP.NET MVC3 Webサイトのセットアップを行っています。検証コードが動作しています。しかし、検証クラスのコンストラクタにブレークポイントを設定し、検証を使用するビューをリクエストすると、コンストラクタが複数回ヒットすることに気付きました。非常に基本的なテストに基づいて、コンストラクタがヒットした回数は、オブジェクトに存在するプロパティの数に等しいと思われます。他の誰かが似たようなものを見つけましたか?あるいは、このタイプのバリデーションがどのように裏で働いているかについて、より多くの洞察を得ることができますか?ここでASP.NET MVC3 Fluent Validationコンストラクターがリクエストごとに複数回ヒットする
を-Thanksがコンストラクタです...ここで
public class PersonValidator : AbstractValidator<Person> {
public PersonValidator() {
RuleFor(x => x.Id).NotNull();
RuleFor(x => x.Name).Length(0, 10);
RuleFor(x => x.Email).EmailAddress();
RuleFor(x => x.Age).InclusiveBetween(18, 60);
}
}
は、私が使用しているライブラリ/リソースが(私はNuGetパッケージと下の2つのリンクからの情報に基づいて構成されたすべてのものを得ました)です:
http://fluentvalidation.codeplex.com/wikipage?title=mvc https://github.com/ninject/ninject.web.mvc.fluentvalidation
おもしろい質問、あなたが(x => x.Id)を呼び出すとどういうことが起こっているのか分かりますか?私はまだLINQ式に新しくなっていますが、これはあなたの問題に関係するかもしれないと思います –
@CodeRush 'RuleFor(x => x.Id)'は 'Person x'の' Id'プロパティのルールを作ることを意味します。 @Zoranどのようにバリデータを設定していますか? – shuniar
私はLinqに精通しており、流暢なAPIをEFコードファーストで使用しています。 @ shuniar - サイトの設定に使用したウェブサイトへのリンクを追加しました。私は実際にすべてのステップを実行することはできませんが、手順に従うことで作業の有効性を確認したと言えるでしょう。私はちょうどそのコードが何度もヒットするのを知りたいのです。それは私が少し心配している。 :) – Zoran