フォームを投稿するときにデフォルトのasp.net-mvc検証をオーバーライドしたいので、fluent.validationを使用してみました
バリデータークラス(ProjectValidator)を作成しました
public class ProjectValidator : AbstractValidator<Project>
{
public ProjectValidator()
{
RuleFor(h => h.Application).NotNull().WithName("Application");
RuleFor(h => h.FundingType).NotNull().WithName("Funding Type");
RuleFor(h => h.Description).NotEmpty().WithName("Description");
RuleFor(h => h.Name).NotEmpty().WithName("Project Name");
}
}
データ転送オブジェクトクラスに属性を設定します
[Validator(typeof(ProjectValidator))]
public class ProjectViewModel
{
...
}
そして私はこれをapplication_start();に入れます。
DataAnnotationsModelValidatorProvider
.AddImplicitRequiredAttributeForValueTypes = false;
ModelValidatorProviders.Providers.Add(
new FluentValidationModelValidatorProvider(new AttributedValidatorFactory()));
しかし、このオブジェクトを使用するフォームを投稿すると、次のエラーが発生します。
メソッドが見つかりません:'System.Collections.Generic.IEnumerable`1 FluentValidation.IValidatorDescriptor.GetValidatorsForMember(System.String)'。
助言がありますか?