У меня есть приложение MVC3, использующее EF, где одна таблица оказывается во многих моделях представлений.У него есть поле, которое обычно не требуется.Но есть одна ситуация (и одна точка зрения), где это требуется.Я хочу, чтобы и клиент, и сервер проверяли обязательность этого поля в одном месте, где оно требуется.
Теперь я не хочу помещать аннотацию данных Required
на поле, потому что тогда она всегда будет требоваться.Это будет верно даже для представлений, где поле не отображается для редактирования, что приведет к сообщению о проверке, которое пользователь не сможет удалить.
Я также не ищу атрибут проверки RequiredIf
, потому что он не соответствует дизайну.Поле является обязательным только при одном обстоятельстве, и я не хочу вставлять дополнительное поле из избыточной таблицы во всех моих моделях представления, просто ради зависимости.
Все, что я хочу, - это иметь возможность включить обязательную проверку поля для одного поля в одном представлении, специальным образом, не основанным на DataAnnotations.
Способ, который сразу же подсказал мне, состоял в том, чтобы указать необходимые атрибуты data-val-*
при создании разметки для поля (через объект HtmlAttributes
в конце подписи HtmlHelper.TextBoxFor
).Если я правильно понимаю, это должно привести к ненавязчивой проверке JS, чтобы обработать поле как требуется.
Но это ... мне кажется, слишком много взлома.Ненавязчивая поддержка валидации будет вторгаться в код более высокого уровня.Есть ли более элегантный способ сделать это?Вызов функции проверки jQuery, который я могу использовать, чтобы добиться того, что я хочу, чтобы произошло?