我想在发布表单时覆盖默认的 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)'。
有什么建议么?