Валидатор FluentValidation не называют


У меня есть сайт MVC 3, но я использую не-MVC fluentvalidation dll. Я создал класс валидатора и в конструкторе поместил все мои RuleFors, а затем установил атрибут для моего класса модели таким образом

[FluentValidation.Attributes.Validator(typeof(MyValidator))]

Проблема в том, что конструктор класса validator никогда не вызывается. Я думаю, что это может быть потому, что я не использую версию MVC библиотеки dll, но тогда я не мог заставить эту версию работать для меня тоже.

Любая помощь была бы оцененный.

Спасибо,

Сачин

1 4

1 ответ:

В вашем Application_Start Убедитесь, что вы инициализировали пользовательский поставщик валидатора fluent validation model, иначе ничего не произойдет:

FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();

Класс FluentValidationModelValidatorProvider определяется внутри сборки FluentValidation.Mvc. Пожалуйста, ознакомьтесь с документацией по интеграции FluentValidation в ASP.NET сайт MVC .

Валидатор будет срабатывать при вызове действия контроллера, принимающего модель, украшенную атрибутом [Validator] в качестве аргумента:

[HttpPost]
public ActionResult Process(MyViewModel model)
{
    ...
}