Html.ValidationSummary (false, "message") всегда отображается, даже при загрузке страницы - PullRequest
41 голосов
/ 12 ноября 2010

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

"* обозначает обязательное поле"

всегда отображается даже до проверки.

<%: Html.ValidationSummary(false, "* denotes required field.")%>

Я использую привязку модели для выполнения проверки на стороне клиента и MVC.

Ответы [ 3 ]

81 голосов
/ 03 мая 2011

Если вы используете инструмент разработчика в своем браузере для проверки текста сводки проверки, вы увидите, что он имеет класс validation-summary-<b>valid</b>, когда он очищен, но validation-summary-<b>errors</b>, когда есть ошибки формы.

Поэтому просто создайте правило CSS следующим образом:

.validation-summary-valid {
    display:none;
}

и все должно быть хорошо.

4 голосов
/ 24 февраля 2011

Я думаю, что проблема в том, что Html.ValidationSummary должен появиться перед Html.BeginForm, в противном случае сообщение всегда отображается.

0 голосов
/ 14 июня 2017

Изначально я проверял свойство List при загрузке страницы, поэтому я думал о сдаче новой модели. Тогда сводка проверки только появилась. Когда я изменил свой код с

return View(new myModel)

до

return View()

Сводка проверки не появилась на Get. Я также добавил нулевую проверку на модель при проверке свойства, чтобы я мог использовать последний код.

...