首先,我是MVC的新手。我有一个视图,其中包含以下代码行:
<span id="loginerror" style="border-color:red;"> @Html.ValidationMessage("UserName") </span>
这项工作正常,只是它在我的loginerror
中添加了一个范围,而不是仅在loginerror
中显示错误。我知道我也可以通过html帮助器添加css,但如果可能的话我想以这种方式做到这一点。我只想获得ValidationMessage的值,而不必更改大量代码。
答案 0 :(得分:1)
@Html.ValidationMessage()
助手输出一个<span>
元素,假设该属性有效
<span class="field-validation-valid" data-valmsg-for="xxx" data-valmsg-replace="true"></span>
如果属性无效
<span class="field-validation-error" data-valmsg-for="xxx" data-valmsg-replace="true">Error message</span>
对于客户端验证,jquery.validate.js
和jquery.validate.unobtrusive.js
文件为错误消息添加内部范围
<span class="field-validation-error" data-valmsg-for="xxx" data-valmsg-replace="true">
<span for="xxx" generated="true" class="">Error message</span>
</span>
要更改此行为,您需要为外部HtmlHelper
元素创建自己的<span>
扩展方法,或使用具有重载的MVC-5
,以便添加参数指定tag
。
但是,对于客户端验证生成的内部span元素,您需要修改jquery.validate.unobtrusive.js
文件,显然这不是您想要做的事情。
相反,您可以创建自己的css文件来设置默认范围元素的样式,例如
field-validation-error {
display: inline-block;
border: solid 1px red;
color: green;
margin: 10px;
}