私は複雑なビューモデルを含むプロジェクトでFluentValidationを試しており、ドキュメントはこちらしかし、ビューモデルで宣言されたオブジェクトのリストを検証するためのルールを設定する方法がわかりません。以下の例では、ビューモデルのリストに1つ以上のGuitarオブジェクトが含まれています。ありがとうございます
モデルを表示
[FluentValidation.Attributes.Validator(typeof(CustomerViewModelValidator))]
public class CustomerViewModel
{
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Display(Name = "Phone")]
public string Phone { get; set; }
[Display(Name = "Email")]
public string EmailAddress { get; set; }
public List<Guitar> Guitars { get; set; }
}
ビューモデルで使用されるギタークラス
public class Guitar
{
public string Make { get; set; }
public string Model { get; set; }
public int? ProductionYear { get; set; }
}
ビューモデル検証クラス
public class CustomerViewModelValidator : AbstractValidator<CustomerViewModel>
{
public CustomerViewModelValidator()
{
RuleFor(x => x.FirstName).NotNull();
RuleFor(x => x.LastName).NotNull();
RuleFor(x => x.Phone).NotNull();
RuleFor(x => x.EmailAddress).NotNull();
//Expects an indexed list of Guitars here????
}
}
ベストアンサー1
このコードは非推奨です:RuleFor(x => x.Guitars).SetCollectionValidator(new GuitarValidator());
これは、新しい:
RuleForEach(x => x.Guitars).SetValidator(new GuitarValidator());