Интересная ситуация. У меня есть Html.Textbox (), который я отображаю из представления следующим образом:
<%= Html.TextBox("title", Model.Title, new { @class = "txt" }) %>
В моем контроллере у меня есть следующая, несколько упрощенная проверка заголовка. Для аргументов предположим, что он находит ошибку и повторно отображает представление с информацией об ошибке состояния модели.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditBook(string title) {
Model = new Book(ControllerContext.RequestContext);
if (String.IsNullOrEmpty(title))
{
title = String.Empty;
ModelState.AddModelError("title", "* Title is a required");
modelState.SetModelValue("title", ValueProvider["title"]);
}
else { // show confirmation }
if (!ModelState.IsValid)
{
return View("EditBook", Model);
}
}
Когда страница перерисовывается, к моему текстовому полю html правильно добавлен класс input-validation-error ... Но это бесполезно, так как присоединен первый класс! Мне нужно переопределить все существующие стили в моем текстовом поле. Вывод html выглядит следующим образом:
<input type="text" name="title" id="title" class="input-validation-error txt"/>
Предположим, были определены следующие стили CSS:
input.txt { border: 1px; color: #000 }
.input-validation-error { border: 2px solid #fff }
Проблема в том, что мой оригинальный класс css "txt" имеет преимущество и не позволяет мне правильно оформить текстовое поле ошибки.
Есть мысли?