私はNinject.Web.Mvc.FluentValidationライブラリでFluent Validationを使用して、すべてのバリデーターを自動的にワイヤリングします(バリデーターを作成するために依存性注入を使用します)。子プロパティの選択的検証 - MVCでの流暢なバリデーション
私は、次のモデル作成:
public class ParentValidator : AbstractValidator<Parent>
{
public ParentValidator()
{
RuleFor(model => model.Name).NotEmpty();
RuleFor(model => model.Child1).SetValidator(new ChildValidator());
}
}
public class ChildValidator : AbstractValidator<Child>
{
public ChildValidator()
{
RuleFor(model => model.ChildProperty).NotEmpty();
}
}
マイビュー:次のバリデータで
public class Parent
{
public string Name { get; set; }
public Child Child1 { get; set; }
public Child Child2 { get; set; }
}
public class Child
{
public string ChildProperty { get; set; }
}
を私が達成しようとしています何
@model Parent
@using(Html.BeginForm())
{
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
@Html.EditorFor(model => model.Child1)
@Html.EditorFor(model => model.Child2)
<input type="submit" value="Save" />
}
@model Child
@Html.EditorFor(model => model.ChildProperty)
@Html.EditorFor(model => model.ChildProperty)
は、親を持つことです2つの子プロパティを持つモデル。 Child1のプロパティは必須ですが、Child2のプロパティはオプションです。正常な状況では正常に動作しますが、Ninjectモジュールを使用してバリデーターを自動的にワイヤリングすると、Childクラスのバリデータ型が検出され、ParentのすべてのChildプロパティが配線されます。
Ninjectモジュールを削除しなければ、これが起こらないようにする方法はありますか?自動wireupは条件付きで結合モデルの間ChildValidatorクラスを適用する際に理解するための方法を持っていないので、あなたは、いくつかの選択肢を持っているように、それはそう
アセンブリですべてのバリデーターを自動的にワイヤリングするNinjectモジュールを使用しているので、これを行う必要はありませんでした。 – Dismissile