Say you have a standard ValidationSummary:
<%: Html.ValidationSummary(excludePropertyErrors: true) %>
If the ModelState contains model errors for properties but not for the model itself the ValidationSummary renders the following HTML:
<div class="validation-summary-errors"><ul><li style="display:none"></li></ul></div>
Which is displayed as an empty list but is still visible because of the red border around the list. This seems to be a bug to me. Can I turn off that the ValidationSummary helper will ever render an empty list?
Similar to usr's answer, I fixed this with the following:
public static IHtmlString FixedValidationSummary(this HtmlHelper htmlHelper)
{
return htmlHelper.FixedValidationSummary(false);
}
public static IHtmlString FixedValidationSummary(this HtmlHelper htmlHelper,
bool excludePropertyErrors)
{
var result = htmlHelper.ValidationSummary(excludePropertyErrors);
return result == null || result.ToString().Contains("display:none") ? null : result;
}
This way I don't have to actually fork the original.
Agreed, though, this is very annoying.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With