При использовании проверки ASP.NET MVC в формах сообщения об ошибках выводятся в определенном html. Как, например, если вы проверка текстового поля, которые должны быть заполнены, выход после проверки не удается будет выглядеть примерно так:Проверка ASP.NET MVC - Как я могу изменить html, который выводится механизмом проверки MVC?
<label for="MonkeyName">Name: </label>
<span class="field-validation-error">*</span>
<br />
<input class="input-validation-error" id="MonkeyName" name="MonkeyName" type="text" value="" />
В приведенном выше коде, пролет тег был автоматически генерируется рамках проверки и в текстовое поле был добавлен класс с именем input-validation-error. Но что, если я хочу, чтобы валидатор генерировал разные html?
Я хотел бы использовать структуру проверки MVC, но я бы хотел иметь полный контроль над тем, как отображаются сообщения проверки, особенно, поскольку MVC обещает контроль над пользовательским интерфейсом. HTML и CSS, которые я разработал (до того, как вы решили использовать серверный язык программирования на стороне сервера), отличаются для сообщений об ошибках, потому что я хочу установить класс с контейнером текстового поля, а не с самим текстовым полем. Возьмите это в качестве примера:
<dl class="error">
<dt>
<label for="email">Email</label>
<span class="required">Required</span>
</dt>
<dd>
<input class="textinput_med" id="FromEmail" name="FromEmail" type="text" value="" />
<a href="#"><img src="Content/images/structure/help.png" width="30" height="30" alt="Help" /></a>
<span class="errormessage">Some Error</span>
</dd>
</dl>
Хотя у меня есть срок для сообщения об ошибке, я хотел бы установить тег контейнера (ЭБ) с именем ошибки класса CSS. Есть ли способ определить способ отображения сообщений об ошибках с помощью рамки проверки?
Примечание: Несмотря на то, что я думал о решении с jQuery, которое обнаруживает поля формы, которые имеют класс «ошибка ввода-проверки», и устанавливает их соответствующие контейнеры с моей собственной ошибкой класса «css», я не думаю, что это хорошее решение, и я думаю, что это обходное решение для чего-то, что могло бы быть лучше. Я могу перейти с MVC 2 на MVC 3, если это решает проблему.