從AJAX查詢返回時,是否有方法確定服務器端驗證是否添加了任何錯誤?確定MVC3服務器驗證是否成功
我已經試過
if ($('#MyForm').valid() == true)
...
在
OnSuccess
功能
,但它似乎永遠是真實的,不管服務器端驗證是否失敗與否。如果生成刷新的HTML確實會按預期輸入錯誤,所以我知道驗證工作正常。
我懷疑valid()
方法只是重新運行客戶端驗證。
從AJAX查詢返回時,是否有方法確定服務器端驗證是否添加了任何錯誤?確定MVC3服務器驗證是否成功
我已經試過
if ($('#MyForm').valid() == true)
...
在
OnSuccess
功能
,但它似乎永遠是真實的,不管服務器端驗證是否失敗與否。如果生成刷新的HTML確實會按預期輸入錯誤,所以我知道驗證工作正常。
我懷疑valid()
方法只是重新運行客戶端驗證。
退房的技術。使用數據註釋完成服務器端驗證。使用自定義過濾器,驗證錯誤被髮送到客戶端,並在客戶端,你可以調用從unbotrusive JS
$.validator.unobtrusive.revalidate(form, validationResult);
如果您運行ajax調用服務器,您可以簡單地撰寫Json返回。
通常我將自己的回覆封裝在一個包含屬性的類中,該屬性告訴我是否一切正常, 一個包含數據,另一個包含最終的錯誤消息。
public class MyJsonReposnse
{
public bool Valid {get;set;}
public string Error {get;set;}
public IList<MyClass> Data {get;set;}
}
然後從你的控制器返回的JSON並從jQuery的通話onSuccess
,你檢查的Valid
價值和this tutorial採取相應的行動
revalidate()
你爲什麼不上時,驗證失敗服務器端拋出一個異常?這樣你可以很容易地在OnError客戶端事件中捕獲它。 – themarcuz 2012-04-26 12:40:50