Я создал пользовательский DataAnnotationsModelValidatorProvider
:Пользовательские DataAnnotationsModelValidatorProvider Не розжига
public class CustomValidatorProvider : DataAnnotationsModelValidatorProvider
{
protected override IEnumerable<ModelValidator> GetValidators(ModelMetadata metadata, ControllerContext context, IEnumerable<Attribute> attributes)
{
//Do custom stuff...
return base.GetValidators(metadata, context, attributes);
}
}
И я зарегистрировал его в моей Global.asax
:
ModelValidatorProviders.Providers.Add(new CustomValidatorProvider());
я поставил точку останова в методе GetValidators
но никогда не ударил. Я понимаю, что этот пользовательский поставщик валидатора должен быть выполнен для каждого свойства в моей модели. Я что-то упускаю?
Thanks. Мне действительно нужен доступ к атрибутам, потому что часть '// Do custom stuff ...' перемещает/редактирует некоторые атрибуты проверки модели. Однако я попытался сделать то, что вы предложили, и метод «GetValidators» все еще не срабатывает. –
Хммм. Это сработало для меня, и это то, что было предложено в книге Pro MVC 3 Адама Сандерсона, поэтому не уверен, почему он не срабатывает. Так что что-то еще должно быть неправильным и, возможно, не поставщиком, из которого вы унаследовали. Надеюсь, вы найдете ответ. – Dangerous