По умолчанию Html.ValidationSummary () создает HTML следующим образом:
<span class="validation-summary-errors">There were some errors...</span>
<ul class="validation-summary-errors">
<li>First Name too long</li>
<li>Invalid Email Address</li>
</ul>
Я хотел бы выбрать всю сводку проверки и добавить ограничивающую рамку вокруг нее с помощью CSS, поэтому я добавляю класс CSS следующим образом:
.validation-summary-errors{
background-color:#D9FFB2;
border: 1px solid #5CBA30;
color:#000000;
margin-top:15px;
margin-bottom:15px;
}
Теперь проблема в том, что при этом отображаются отдельные поля вокруг сводного сообщения проверки и каждого сообщения об ошибке. Конечно, не то, что я имел в виду.
Я могу добавить div к сводке, как это, но это приведет к пустой красной рамке, если нет ошибок проверки, так что это не так:
<div class="my-validation-summary">
<h2>
<%=Model.Message%>
</h2>
<%= Html.ValidationSummary("There were some errors...")%>
</div>
Я могу придумать несколько способов решить эту проблему:
- Добавление условного div с тегами на стороне сервера
- Добавление ограничивающего div через jQuery
- Напишите мою собственную оболочку HtmlHelper, которая печатает дружественную для CSS ValidationSummary
Однако все это выглядит довольно неловко для решения такой простой задачи. Должен быть лучший способ сделать это. Возможно, какой-то другой способ написания класса CSS, чтобы я не получал пустое поле, когда нет сводки проверки?
Редактировать: Просто чтобы уточнить, я называю html-помощник так:
<%=Html.ValidationSummary("There were some errors...") %>
Редактировать 2: Задача этого вопроса состояла в том, чтобы увидеть, не упустил ли я что-то невероятно простое и очевидное. Кажется, что нет, поэтому я просто добавлю свою собственную функцию HtmlHelper, которая соответствует моим потребностям. Я голосую, чтобы закрыть свой вопрос.