【问题标题】:ASP.NET MVC 3 / 4 ValidationMessageFor without html markupASP.NET MVC 3 / 4 ValidationMessageFor 没有 html 标记
【发布时间】:2013-05-01 19:14:16
【问题描述】:

有没有办法利用 Html.ValidationMessageFor() 来返回没有 HTML 标记的验证文本?

目前这段代码:

@Html.ValidationMessageFor(m => m.SomeProperty)

返回这个:

<span class="field-validation-error" data-valmsg-for="Model.SomeProperty" data-valmsg-replace="true">This field is required.</span>

我更喜欢这个:

This field is required.

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

m0s 的评论向我指出了这个 StackOverflow 问题/答案。 (How do I get the collection of Model State Errors in ASP.NET MVC?)

这可能是多余的,但这是我的工作解决方案:

@if (ViewData.ModelState.ContainsKey("SomeProperty))
{
     @Html.TextBoxFor(m => m.SomeProperty), 
          new {
               @some_attribute = ViewData.ModelState["SomeProperty"].Errors[0].ErrorMessage })     
}

显然,您希望在解决第一个错误之前确保您的 ModelState 有错误,在我的情况下,这将始终是正确的。

【讨论】:

    【解决方案2】:

    尝试: htmlHelper.ValidationMessage(字符串模型名称)。我认为返回没有标记的字符串。

    【讨论】:

    • 不幸的是返回相同的结果。
    • 我能建议的唯一其他事情是自定义模板来显示错误消息并在模板​​中去除不需要的 html。
    猜你喜欢
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多