I am using client side validation and I would like the message below to show only when I have an error. I am trying to use this a general error in case any field is invalid.
Currently
"* denotes required field"
is always showing even before validation.
<%: Html.ValidationSummary(false, "* denotes required field.")%>
I am using model binding to perform validation on client side and MVC.
If you use a developer tool in your browser to inspect the validation summary text you'll see that it has the class validation-summary-valid when it is clear but validation-summary-errors when there are form errors.
Therefore, just create a css rule as follows;
.validation-summary-valid {
display:none;
}
and all should be good.
I think the issue is the fact the Html.ValidationSummary has to appear before the Html.BeginForm otherwise the message is always displayed.
Initially I was checking for a List property on page load so I thought of passing a new model. Then the validation summary just appeared. When I changed my code from
return View(new myModel)
to
return View()
the validation summary did not appear on Get. I also added a null check on the model when checking the property so I can use the latter code.
来源:https://stackoverflow.com/questions/4166997/html-validationsummaryfalse-message-is-always-showing-even-on-page-load