MVC.net 2 - 更改 ValidationMessageFor 输出的 HTML - 这可以通过模板进行吗?

2024-03-30

MVC.net 2 默认输出验证消息,如下所示:

<span id="UserName_validationMessage" class="field-validation-valid">A Validation message</span>

我希望它这样做:

<label id="UserName_validationMessage" class="field-validation-valid">A Validation message</label>

有没有办法像显示和编辑器模板一样做到这一点?或者有其他方法可以在全球范围内做到这一点吗?


生成该 html 的代码位于 System.Web.Mvc 中的 ValidateExtensions.cs 内部。您可以更新代码以输出标签而不是范围,然后重新编译。代码如下所示:

        TagBuilder builder = new TagBuilder("span");
        builder.MergeAttributes(htmlAttributes);
        builder.MergeAttribute("class", HtmlHelper.ValidationMessageCssClassName);
        builder.SetInnerText(String.IsNullOrEmpty(validationMessage) ? GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState) : validationMessage);

否则,您也许可以覆盖 ValidationExtensions.ValidationSummary(this HtmlHelper htmlHelper, string message, IDictionary htmlAttributes) 并这样做......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC.net 2 - 更改 ValidationMessageFor 输出的 HTML - 这可以通过模板进行吗? 的相关文章

随机推荐