在對重複問題進行投票或關閉之前,我想明確說明我已閱讀本網站和其他人的舊帖子。問題是他們是舊的(至少有一些),並沒有給出真正的好例子。使用Ajax窗體和ASP.Net處理服務器端驗證MVC
我目前使用ASP.Net MVC 2.0與Ajax.BeginForm
和jQuery Validation
客戶端驗證,它們都工作得很好。但是我想要將服務器端驗證錯誤顯示爲客戶端錯誤(不一定是遠程)。服務器端錯誤當前適用於ModelState.AddModelError
。
我用的延伸是這樣的代碼:
<% Html.EnableClientValidation(); %>
using (Ajax.BeginForm("Bar", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "result"})) { %>
<fieldset>
<p>
<%: Html.TextAreaFor(model => model.Foo) %>
<%: Html.ValidationMessageFor(model => model.Foo) %>
</p>
<p>
<input type="submit"/>
</p>
</fieldset>
而且,正如我所說,我設定的誤差與ModelState.AddModelError
。目前,我返回一個關於錯誤的驗證摘要(它不會綁定到導致它們的元素),否則返回我的結果。
到現在爲止,我所遇到的多種解決方案,這一問題:
- XVAL(支持遠程服務器驗證)
- 在
RenderPartial
和id='result'
將整個表格。 - 返回一些JSON使用結果和錯誤的消息
但有實在不是一個更好的解決方案(也許在ASP.Net MVC 3.0)? xVal仍然是一個很好的解決方案(不是很多開發正在進行)?
如果我使用JSON解決方案,是否有jQuery方法將錯誤分配給模擬100%客戶端驗證的特定元素?
如果有更好的解決方案,我準備切換我使用的技術。
謝謝,Lasse Espeholt
自MVC 2發佈以來,我不認爲客戶端驗證發生了任何「新」事件,因此我不確定您尋找哪種新信息。 – jfar 2010-08-30 14:10:06
@jfar xVal是爲1.0製作的,但這仍然是一個不錯的選擇?我看到它的最新更新是1年前。我正在尋求推薦我應該使用哪種解決方案(或其他解決方案)。 – 2010-08-30 14:29:43