Html.ValidationSummary(false, "message" ) всегда отображается, даже при загрузке страницы
Я использую проверку на стороне клиента, и я хотел бы, чтобы приведенное ниже сообщение отображалось только тогда, когда у меня есть ошибка. Я пытаюсь использовать эту общую ошибку в случае, если какое-либо поле недействительно.
В настоящее время
"* обозначает обязательное поле"
всегда отображается даже перед проверкой.
<%: Html.ValidationSummary(false, "* denotes required field.")%>
Я использую привязку модели для выполнения проверки на стороне клиента и MVC.
Ответы
Ответ 1
Если вы используете инструмент разработчика в своем браузере для проверки сводного текста проверки, вы увидите, что он имеет класс validation-summary-valid
, когда он ясен, но validation-summary-errors
, когда есть ошибки формы.
Поэтому просто создайте правило css следующим образом:
.validation-summary-valid {
display:none;
}
и все должно быть хорошо.
Ответ 2
Я думаю, что проблема заключается в том, что Html.ValidationSummary должен появиться перед
Html.BeginForm, иначе сообщение всегда отображается.
Ответ 3
Сначала я проверял свойство List на загрузке страницы, поэтому я
мысль о прохождении новой модели. Затем только что появилось резюме проверки.
Когда я изменил свой код из
return View(new myModel)
к
return View()
резюме проверки не появилось в Get. Я также добавил нулевую проверку модели при проверке свойства, чтобы использовать последний код.