如何使Html.ValidationMessageFor()呈现DIV而不是SPAN?

时间:2016-05-26 08:49:25

标签: asp.net-mvc html-helper

我正在使用ASP.NET MVC 5,我有一个使用以下Html帮助器的表单

   @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })

当我查看在浏览器中生成的渲染的Html时,它似乎将其渲染为 Span 元素。这会导致验证消息与我的一个标签位于同一行。

我想知道的是如何让@Html.ValidationMessageFor()方法渲染 Div 元素而不是 Span

3 个答案:

答案 0 :(得分:4)

不要将其变成div,只需添加样式规则{for ValidationMessageFor

 @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger newLine" })

.newLine 
{
    display:block;
}

答案 1 :(得分:2)

最后添加一个参数。

@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger newLine" },"div")

它将创建一个div。

enter image description here

答案 2 :(得分:1)

在App_Start内部,您可以在其中激活客户端验证并且不打扰,可以为验证设置默认元素。

HtmlHelper.ClientValidationEnabled = true;
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
HtmlHelper.ValidationMessageElement = "div";