我正在创建一个全新的MVC3网站。在web.config中启用 客户端验证在客户端验证在MVC3中为true时呈现的差异
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
方案1:一个失败(客户端)后生成HTML输出验证:
<span data-valmsg-replace="true" data-valmsg-for="UserName" class="field-validation-error">
<span htmlfor="UserName" generated="true" class="">Please enter an email address</span>
</span>
注意嵌套的span标签,其中最里面的标签有a class =“”
场景#2:自定义服务器端验证。使用相同的web.config配置,我在服务器上添加了一个验证以检查自定义业务规则。验证失败,我将该错误添加到ModelState中。
的HTML生成这个样子的:这是产生只有一个span标签
<span data-valmsg-replace="true" data-valmsg-for="UserName" class="field-validation-error">Please enter a valid email address</span>
注意,不是一个嵌套的标签。
这种行为让我很难处理我的CSS,因为我不能只是设置.field-validation-error类的样式,因为在我生成的HTML上有两个不同的最终结果。
总结:客户端验证只生成1个span标签,服务器端验证生成2个span标签。
问题:这是框架的缩进行为还是我做错了什么?
“IN SUMMARY”部分实际上是反转的,客户端验证会生成2个span标签。 – pauloya 2012-09-28 16:00:40