Asp.net mvc 在ASP.NET MVC中自定义用于ValidationError的HTML
我有一个案例,我的客户希望在每个字段上都有一个更自定义的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))
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;
}
});