Как сделать поле обязательным только при определенных условиях?

У меня есть представление редактирования, которое я использую для создания и редактирования пользователей. Представление имеет поля Password1 и Password2 для пароля и подтверждения соответственно. Они не помечены как обязательные в модели представления, так как при редактировании пользователя эти поля являются необязательными и используются только для смены пароля.

Мне бы не хотелось иметь две почти одинаковые модели представления, отличающиеся только двумя атрибутами Required. У меня есть проверка сервера для этих полей, но мне очень не нравится двухэтапная проверка, когда пользователь исправляет все ошибки проверки клиента только для того, чтобы отправить и подождать, а затем получить ошибки проверки сервера.

Есть ли способ включить проверку клиента для этих полей в определенных случаях? Я знаю, что могу использовать jQuery для добавления необходимых атрибутов, но я надеялся на более простое и понятное решение.


person ProfK    schedule 30.05.2013    source источник
comment
Я бы проверил ненавязчивую проверку jquery, как это было задано в [этот другой вопрос SO] [1]. [1]: stackoverflow.com/questions/11534910/< /а>   -  person Norman H    schedule 30.05.2013


Ответы (2)


Я использовал проверку MVC Foolproof. Он имеет прекрасный набор условных атрибутов, включая [RequiredIf].

person ProfK    schedule 04.06.2013

Я бы проверил ненавязчивую проверку jquery, как это было задано в этот другой вопрос SO.

Проверка на стороне сервера может быть выполнена с помощью вызова ajax для более сложной логики проверки.

В противном случае кажется, что настраиваемое правило было бы правильным путем.

Дополнительные сведения см. в документации по проверке jQuery.

person Norman H    schedule 30.05.2013