在窗體上使用ASP.NET MVC驗證時,錯誤消息在特定的html中輸出。像例如,如果您要驗證的是必須填寫的文本框,驗證後的輸出失敗會像這樣:ASP.NET MVC驗證 - 如何更改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="" />
在上面的代碼,跨度標籤已被自動驗證框架產生和一個名爲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>
雖然我有錯誤消息的跨度,我想設置的集裝箱電子標籤(DL)與命名錯誤CSS類。有沒有一種方法可以確定錯誤消息由驗證框架呈現的方式?
注意:儘管我已經考慮過使用jQuery來檢測具有'input-validation-error'類的表單字段並使用我的自定義css類'錯誤'設置它們各自的容器的解決方案,但我不認爲它是一個很好的解決方案,我認爲這是一個可能更好的解決方法。如果解決了這個問題,我可以從MVC 2升級到MVC 3。