Валидатор FluentValidation не называют
У меня есть сайт MVC 3, но я использую не-MVC fluentvalidation dll. Я создал класс валидатора и в конструкторе поместил все мои RuleFors, а затем установил атрибут для моего класса модели таким образом
[FluentValidation.Attributes.Validator(typeof(MyValidator))]
Проблема в том, что конструктор класса validator никогда не вызывается. Я думаю, что это может быть потому, что я не использую версию MVC библиотеки dll, но тогда я не мог заставить эту версию работать для меня тоже.
Любая помощь была бы оцененный.
Спасибо,
Сачин
1 ответ:
В вашем
Application_Start
Убедитесь, что вы инициализировали пользовательский поставщик валидатора fluent validation model, иначе ничего не произойдет:FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();
Класс
FluentValidationModelValidatorProvider
определяется внутри сборкиFluentValidation.Mvc
. Пожалуйста, ознакомьтесь с документацией по интеграции FluentValidation в ASP.NET сайт MVC .Валидатор будет срабатывать при вызове действия контроллера, принимающего модель, украшенную атрибутом
[Validator]
в качестве аргумента:[HttpPost] public ActionResult Process(MyViewModel model) { ... }