【发布时间】:2011-05-07 14:40:36
【问题描述】:
在表单上使用 ASP.NET MVC 验证时,错误消息会以特定的 html 格式输出。例如,如果您正在验证必须填写的文本框,则验证失败后的输出将如下所示:
<label for="MonkeyName">Name: </label>
<span class="field-validation-error">*</span>
<br />
<input class="input-validation-error" id="MonkeyName" name="MonkeyName" type="text" value="" />
在上面的代码中,span 标签已经由验证框架自动生成,并且在文本框中添加了一个名为 input-validation-error 的类。但是如果我想让验证器生成不同的 html 呢?
我想使用 MVC 验证框架,但是我想完全控制验证消息的显示方式,特别是因为 MVC 承诺控制 UI。我设计的 HTML 和 CSS(甚至在决定要使用的服务器端编程语言之前)对于错误消息是不同的,因为我想用文本框的容器而不是文本框本身来设置一个类。以此为例:
<dl class="error">
<dt>
<label for="email">Email</label>
<span class="required">Required</span>
</dt>
<dd>
<input class="textinput_med" id="FromEmail" name="FromEmail" type="text" value="" />
<a href="#"><img src="Content/images/structure/help.png" width="30" height="30" alt="Help" /></a>
<span class="errormessage">Some Error</span>
</dd>
</dl>
虽然我有错误消息的范围,但我想使用名为 error 的 css 类设置容器标记 (dl)。有没有办法可以确定验证框架呈现错误消息的方式?
注意:虽然我已经考虑过使用 jQuery 的解决方案,它可以检测具有“输入验证错误”类的表单字段并使用我的自定义 css 类“错误”设置它们各自的容器,但我不认为这是一个很好的解决方案,我认为这是一个可以更好的解决方法。如果这能解决问题,我可以从 MVC 2 升级到 MVC 3。
【问题讨论】:
标签: asp.net-mvc jquery-validate validation rendering