检查Html.ValidationSummary()是否有值

时间:2010-11-05 11:49:31

标签: asp.net-mvc-2

如何检查Html.ValidationSummary()是否有错误?

需要最终结果:

<% if(I_HAVE_ERRORS) {%>
<div><%= Html.ValidationSummary() %></div>
<%}%>

换句话说,我如何确定“I_HAVE_ERRORS”?

4 个答案:

答案 0 :(得分:56)

<%if (!Html.ViewData.ModelState.IsValid){%>

答案 1 :(得分:7)

razor语法一起使用

@if (!Html.ViewData.ModelState.IsValid)
{
    // show error
}

或者您可以将其作为扩展方法进行包装

public static bool HasErrors(this HtmlHelper helper)
{
    return helper.ViewData.ModelState.IsValid == false;
}

将其用作

@if (Html.HasError())
{
    // show error
}

答案 2 :(得分:0)

实际上,我认为检查验证错误(不仅是基于模型的自动生成错误)的最正确方法是;

@if (Model.ViewData.ModelState.ErrorCount > 0)
{
}

这样,它将包括用户生成的模型错误。

答案 3 :(得分:0)

如果您需要检查与任何特定字段无关的错误,则可以尝试以下操作:

@if(Html.ViewData.ModelState.ContainsKey(string.Empty))
{
    <div class="panel panel-danger">
        <div class="panel-heading">
            @Html.ValidationSummary(true)
        </div>
    </div>
}