我有一个 MVC3 应用程序,它有一个非常糟糕的主 CSS 文件,如果没有大量的重新开发工作(即将到来......但我现在不能这样做),我无法编辑该文件。我有以下代码块:
@Html.ValidationMessageFor(m => m.Email)
@Html.ValidationMessageFor(m => m.Password)
@Html.ValidationMessage("")
这三行周围有相当多的结构。
我遇到的问题是,它在呈现前两个错误消息时会生成以下 HTML:
<div class="field-validation-adddiscount">
<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Email">
<span class="" for="Email" generated="true">
The Email Address field is not a valid e-mail address.
</span>
</span>
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="Password"></span>
<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="">
The email address or password provided is incorrect. Please try again.
</span>
为什么这会为电子邮件地址验证消息生成两个跨度类(我可以摆脱它还是将一个类注入到跨度中?我试图在 ValidationMessage 中设置@id,但它会将其分配给父跨度并且子跨度仍然会导致 css 变得精神错乱(我必须使用一个非常糟糕的 css 主文件 - 在“我希望客户愿意花时间重写它”列表中的一件事)
我知道它与 jquery unobtrusive validation 有关,因为我试图从这篇文章中实现修复:当客户端验证在 MVC3 中为 true 时呈现的 html 之间的差异 但这似乎对验证做了一些奇怪的事情,包括阻止电子邮件验证消息完全出现。