我不知道是否可以使用段落而不是默认跨度,因为它可能使验证插件不可能放置错误消息。但是对于div -s,这很容易 – 你可以编写自定义html帮助器。
沿着这些路线(可能需要进一步的测试/编码)。您将需要在视图中包含此静态扩展方法的命名空间,或直接将其放入System.Web.Mvc.Html。
public static class Validator
{
public static MvcHtmlString MyValidationMessageFor(this HtmlHelper helper,Expression> expression)
{
TagBuilder containerDivBuilder = new TagBuilder("div");
containerDivBuilder.AddCssClass("field-error-Box");
TagBuilder topDivBuilder = new TagBuilder("div");
topDivBuilder.AddCssClass("top");
TagBuilder midDivBuilder = new TagBuilder("div");
midDivBuilder.AddCssClass("mid");
midDivBuilder.InnerHtml = helper.ValidationMessageFor(expression).ToString();
containerDivBuilder.InnerHtml += topDivBuilder.ToString(TagRenderMode.Normal);
containerDivBuilder.InnerHtml += midDivBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(containerDivBuilder.ToString(TagRenderMode.Normal));
}
}
如您所见,这使用默认的ValidationMessageFor方法,不会干扰验证插件错误消息处理。
并且您可以简单地使用,作为默认验证消息助手
@Html.MyValidationMessageFor(model => model.SomerequiredField)