如果模型无效,则使用excludePropertyErrors = true的ASP.NET MVC Validationsummary呈现为空

usr*_*usr 10 asp.net-mvc validationsummary asp.net-mvc-validation

假设您有一个标准的ValidationSummary:

<%: Html.ValidationSummary(excludePropertyErrors: true) %>
Run Code Online (Sandbox Code Playgroud)

如果ModelState包含属性的模型错误但不包含模型本身的模型错误,则ValidationSummary将呈现以下HTML:

<div class="validation-summary-errors"><ul><li style="display:none"></li></ul></div>
Run Code Online (Sandbox Code Playgroud)

由于列表周围有红色边框,因此显示为空列表但仍然可见.这对我来说似乎是个错误.我可以关闭ValidationSummary助手将呈现一个空列表吗?

Ant*_*lls 11

与usr的答案类似,我通过以下方式解决了这个问题:

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;
}
Run Code Online (Sandbox Code Playgroud)

这样我就不必实际分叉原件了.

但同意这是非常烦人的.