Как остановить Ninject от переопределения пользовательского DataAnnotationsModelValidatorProvider?
-
27-10-2019 - |
Вопрос
У меня есть собственный DataAnnotationsModelValidatorProvider для более динамичной проверки модели, а не просто добавления атрибутов.Я попытался добавить свое предложение в global.asax.cs вот так:
родовое словоНо как только я загружаю форму, я получаю сообщение об ошибке: «Имена типов проверки в ненавязчивых правилах проверки клиентов должны быть уникальными. Следующий тип проверки встречался более одного раза: требуется».
Согласно комментарий к этому блогу , это потому, что Ninject переопределяет поставщиков настраиваемых валидаторов.
Я новичок в MVC и, похоже, не могу найти способ сообщить Ninject, чтобы он также принимал моих пользовательских провайдеров. Как мне решить эту проблему?
Для справки: я не хочу использовать Fluentvalidation.net, я хочу придерживаться стандартных проверок MVC (по большей части).
Решение
Измените регистрацию провайдера на
родовое словоДругие советы
Есть другой способ (точно работает в MVC 4):
Найдите свой класс, который наследует интерфейс IdependencyResolver
, и добавьте в конструктор _kernel.Unbind<ModelValidatorProvider>();
- вы просто отключаете валидатор ninject, и не должно быть столкновения с валидатором по умолчанию.
В моем случае мой конструктор выглядит так:
родовое слово