Fluent Validations. Error: Validation type names in unobtrusive client validation rules must be unique

我只是一个虾纸丫 提交于 2019-11-28 07:37:34

FluentValidation.NET is called Fluent because it provides a fluent interface for chaining methods:

public TestViewDataValidation()
{
    RuleFor(x => x.Login)
        .NotNull()
        .NotEmpty()
        .EmailAddress();
}

Remark: the usage of NotNull and NotEmpty rules seem reduntant to me in this case. NotEmpty should be enough.

Per Hornshøj-Schierbeck

This error is shown if you have the same validation on the same element more than once.

Not setting AddImplicitRequiredAttributeForValueTypes = false for both the default DataAnnontations and your FluentValidation will add a Required validation on any ValueTypes (like an int). If you at the same time add a RuleFor (or a [Required] attribute) on any ValueType you will have an extra Required for that field.

For that reason (I want to set all validations explicitly) I have the following in my Application_Start():

var fluentValidationModelValidatorProvider = new FluentValidationModelValidatorProvider(new AttributedValidatorFactory());
ModelValidatorProviders.Providers.Add(fluentValidationModelValidatorProvider);
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
fluentValidationModelValidatorProvider.AddImplicitRequiredValidator = false;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!