Отключите ненавязчивую проверку DataAnnotations по умолчанию при использовании Fluent Validation
Я использую Fluent Validation для серверной и ненавязчивой проверки на стороне клиента в MVC. Мне пришлось расширить его в соответствии с потребностями бизнеса, и я столкнулся с проблемами при проверке DataAnnotations по умолчанию. Поэтому я просто хочу полностью отключить встроенный поставщик DataAnnotations и использовать для этого мои собственные расширения Fluent Validation.
В принципе мне нужно остановить рендеринг встроенного ненавязчивого data-val-
атрибуты для типов значений, таких как числа и даты (data-val-number, data-val-date, data-val-required).
Я пробовал:
ModelValidatorProviders.Providers.Clear();
И это, кажется, избавляет от атрибутов числа / даты, но обязательные атрибуты все еще там.
Я старался:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Но это, похоже, ничего не делает. Может быть, я не в том месте / порядке?
1 ответ
С Fluent Validation у него есть собственный флаг для отключения обязательных атрибутов, который должен быть настроен с помощью FluentValidationModelValidatorProvider
, Следующий код позаботится как об атрибутах типа по умолчанию, так и об обязательных атрибутах:
//Don't use built-in type attributes (data-val-number, data-val-date)
ModelValidatorProviders.Providers.Clear();
FluentValidationModelValidatorProvider.Configure(
provider =>
{
provider.ValidatorFactory = new UnityValidatorFactory(container);
//Don't use built-in data-val-required
provider.AddImplicitRequiredValidator = false;
}
);