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

How to check if ModelState contains errors which are not properties

在视图中我有以下错误助手

@Html.ValidationSummary(true)

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

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

我为此 class 定制了 css,带有红色边框背景,问题是即使没有向用户显示错误文本,仍然显示红色边框。

我能否以某种方式防止显示以下错误 html?喜欢

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

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

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

例如

@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}

你是怎么做到的?

好的,我想我有可行的解决方案

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