Asp.net mvc 在ASP.NET MVC中自定义用于ValidationError的HTML

Asp.net mvc 在ASP.NET MVC中自定义用于ValidationError的HTML,asp.net-mvc,jquery-validate,unobtrusive-validation,Asp.net Mvc,Jquery Validate,Unobtrusive Validation,我有一个案例,我的客户希望在每个字段上都有一个更自定义的html验证错误。我觉得这很简单,所以这是我的第一个方法 public static MvcHtmlString MyValidationMessage(this HtmlHelper helper, string modelName, object htmlAttributes) { if (!helper.ViewData.ModelState.ContainsKey(modelName))

我有一个案例,我的客户希望在每个字段上都有一个更自定义的html验证错误。我觉得这很简单,所以这是我的第一个方法

    public static MvcHtmlString MyValidationMessage(this HtmlHelper helper, string modelName, object htmlAttributes)
    {
        if (!helper.ViewData.ModelState.ContainsKey(modelName))
        {
            return new MvcHtmlString("");
        }

        TagBuilder builder = new TagBuilder("div");
        builder.AddCssClass("my-validation-message");
        builder.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
        builder.InnerHtml += "<b>Custom</b>";
        builder.InnerHtml += helper.ValidationMessage(modelName);

        return new MvcHtmlString(builder.ToString());
    }
甚至连调试器都打不到

我正在使用MVC4


注意:我知道这可能是另一个问题的重复,但答案并不令人满意。

我能想到的唯一其他解决方案是从.NET framework中实际复制源代码,并根据我的需要对其进行适配,我真的看不到任何其他方法。

你能更具体地说明你试图实现的目标吗?如果您使用的是Microsoft unobtrusive validator脚本,则在$.validator.setDefaults(…)中输入的任何内容都将被忽略。有趣的是,我只是尝试为错误消息创建一些自定义html。可能是一个旁边有一些文字的图标,但很难使用覆盖错误消息的默认值。
$.validator.setDefaults({
    errorPlacement: function(error, element) {
        debugger;
    }
});