如何停止 ValidationMessageFor 在加载时显示错误消息?

Posted

技术标签:

【中文标题】如何停止 ValidationMessageFor 在加载时显示错误消息?【英文标题】:How do you stop ValidationMessageFor displaying an error message on load? 【发布时间】:2011-11-04 00:36:59 【问题描述】:

我已向视图添加了一条验证消息“CountryId 自定义错误”。问题是它在我最初加载视图以及在 POST 时显示。

<div class="editor-field">
@html.DropDownList("CountryId", Model.GetCountries, "Please select", "0")
@Html.ValidationMessageFor(m => m.CountryId, "CountryId custom error")
</div>

我怎样才能让它只显示在 POST 上? 如果我省略了验证消息,视图会正常显示 POST 上的默认错误。

【问题讨论】:

【参考方案1】:

这个项目是作为一个空的 MVC 应用程序创建的,我删除了 site.css 并重新开始。 如果您希望验证正常工作,则无法执行此操作,因为 main.css 中有重要的 css 隐藏了消息!

哇!!

【讨论】:

【参考方案2】:

这里是 ValidationMessageFor 使用的 CSS 类。从其他项目复制 CSS 时很容易丢失这些。

    .field-validation-error 
        color: red;
        font-weight: bold;
    

    .input-validation-error 
        background: pink;
    

    .validation-summary-valid 
        display: none;
    

    .field-validation-valid 
        display: none;
    

【讨论】:

我已经搜索了很长时间,您的回答实际上对我有帮助,如此简单但很难排除故障。谢谢你。点赞!

以上是关于如何停止 ValidationMessageFor 在加载时显示错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

带有 HTML.ValidationMessageFor 的 ASP.NET MVC AJAX

ValidationMessageFor Language

ModelState.AddModelError到字段的特定ValidationMessageFor?

为什么ValidationMessageFor在这种情况下不显示我的验证消息?

启用对隐藏元素的验证

验证消息包含“{PropertyName}”而不是属性名称