I got the erorr:
Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required. The following validation type was seen more than once: required
I used server validation. And all worked fine. But now I`m stating to use client-side validation and I got this problem.
This is my validation class code:
public class TestViewDataValidation : BaseTestCreateViewDataValidation<BaseTestCreateViewData>
{
public TestViewDataValidation ()
{
this.RuleFor(x => x.Login).NotNull();
this.RuleFor(x => x.Login).NotEmpty();
this.RuleFor(x => x.Login).EmailAddress();
}
}
But if I leave one validator - all works fine. What should I do to have more that one validation for field.
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;
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With