4
私はモデルクラスがあります。リストに対して直接検証する方法<T>?
public class MyModel() { //properties here... }
をそして私はMyModel
オブジェクトのリストを検証します。だから私はこのバリデーターを作成しました:
class MyModelListValidator : AbstractValidator<List<MyModel>>
{
public MyModelListValidator()
{
RuleFor(x => x)
.SetCollectionValidator(new MyModelValidator())
.When(x => x != null);
}
private class MyModelValidator : AbstractValidator<MyModel>
{
public MyModelValidator()
{
//MyModel property validation here...
}
}
}
しかし、上記は機能しません。代わりに、次のようなクラスを作成することもできます。
public class MyModelList()
{
public List<MyModel> Items { get; set; }
}
これは機能します。
しかし、この追加のクラスを使用せずにこれを行う方法はありますか?あなたのアクションが入った場合
[EnsureMinimumElements(1, ErrorMessage = "At least a person is required")]
public List<Person> Persons { get; private set; }
Personally I use FluentValidation.NET instead of Data Annotations to perform validation because I prefer the imperative validation logic instead of the declarative. I think it is more powerful. So my validation rule would simply look like this:
RuleFor(x => x.Persons)
.Must(x => x.Count > 0)
.WithMessage("At least a person is required");
:その後、
と:
、その後: –