Подтвердить что ты не робот

IValidatableObject в MVC3 - проверка на стороне клиента

С MVC3 у вас есть два новых механизма для добавления пользовательской проверки. Это (1) подкласс ValidationAttribute или (2) реализовать объект IValidatableObject.

ValidationAttribute позволяет добавлять проверку на стороне клиента относительно просто, реализуя IClientValidatable (и регистрируя новый адаптер и метод через jQuery).

IValidatableObject больше подходит для одноразовых требований проверки, когда повторное использование не является вариантом. Это также приводит к простому простейшему коду. Поэтому это был бы мой выбор для ряда сценариев. К сожалению, я не вижу простого способа проверки на стороне клиента с помощью этого метода.

Итак, вопрос в том, чего мне не хватает, и как вы получаете JS-проверку при использовании метода IValidatableObject?

4b9b3361

Ответ 1

Поскольку я не получил (действительный) ответ здесь, я спросил пару человек от Microsoft, и они подтвердили, что в настоящее время это невозможно.

Брэд Уилсон:

В это время только валидаторы уровня свойства могут испускать клиентскую сторону валидация (поскольку это намного лучше с идеей ввода валидация в виде браузера... нет "модели" для выступления из, с точки зрения браузера).

Стюарт Лойкс:

Я не верю, что вы можете подключить проверку клиента с помощью IValidatableObject

Ответ 2

http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx http://blogs.msdn.com/b/stuartleeks/archive/2010/07/28/asp-net-mvc-adding-client-side-validation-to-validatepasswordlengthattribute-in-asp-net-mvc-3- предварительный просмотр-1.aspx

ASP.NET MVC 3 теперь награждает Интерфейс IValidateObject, когда модель (в дополнение ко всем другая валидация уже подходит поддерживается MVC 2), и получить от него ошибки проверки и автоматический флаг/выделение полей в представлении с использованием встроенные помощники HTML-формы.

ASP.NET MVC 3 также представляет новую Интерфейс IClientValidatable, который позволяет ASP.NET MVC обнаруживать время выполнения, имеет ли валидатор поддержка проверки клиента. Эта интерфейс был разработан таким образом, чтобы он могут быть интегрированы с различными валидации. MVC 3 также представляет новый IMetadataAware интерфейс, который упрощает внести вклад в ModelMetadata процесс создания.