如何检查ModelState是否包含非属性的错误

时间:2016-12-07 15:47:41

标签: asp.net-mvc validation error-handling modelstate

在View中我有以下错误帮助

@Html.ValidationSummary(true)

其中,如果未验证某些属性,请显示以下html

<div class="validation-summary-errors">
<ul>
<li style="display:none"></li>
</ul>
</div>

我有这个具有红色边框背景的类的自定义css,问题是即使没有向用户显示错误文本,仍会显示红色边框。

我可以以某种方式阻止显示以下错误html吗?像

@if (Html.ModelState.ContainsNonPropertyErrors() == true)
{
Html.ValidationSummary(true)
}

//或检查ModelState Error数组是否包含空键,因为这些是自定义消息。

另外,我可以以某种方式检查表单是否已提交以显示成功的消息吗?

例如

@if (Html.ModelState.FormWasSubmitted() == true)
    {
    if (Html.ModelState.ContainsNonPropertyErrors() == true)
    {
    Html.ValidationSummary(true)
    } else {
    Html.Raw("Operation was successfull.")
    }
}

或者在ViewModel中使用model.successfullMessage属性是一种好习惯吗? (并且在视图中类似@if(ModelState.IsValid) {@Model.successfullMessage}

你是怎么做到的?

1 个答案:

答案 0 :(得分:1)

好的,我认为我有工作解决方案

@if (ViewData.ModelState.Keys.Contains(string.Empty))
{
     @Html.ValidationSummary(true)
}