【问题标题】:How to check if ModelState contains errors which are not properties如何检查 ModelState 是否包含不是属性的错误
【发布时间】:2017-04-22 15:31:43
【问题描述】:

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

@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} 的内容)

你是怎么做到的?

【问题讨论】:

  • 只需设置 &lt;ul&gt; 元素的样式 - .validation-summary-errors &gt; ul { border: ... }
  • aah 一如既往的简单 :-) 谢谢

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2016-01-20
    • 1970-01-01
    • 2020-02-09
    • 2021-10-30
    • 2011-04-23
    • 1970-01-01
    相关资源
    最近更新 更多