2013-08-16 31 views
1

看來我無法進行驗證工作。jqXHR.responseText返回沒有詳細的驗證信息?

我只有一個500 Internal Server Error。而我的responseText"{"Message":"An error has occurred."}"

但是,它不應該是一個400錯誤,幷包含更詳細的內容?

這裏是我的模型:

public class InjuryNoAnnotationModel 
{ 
    public int OutfitterId { get; set; } 
    public string OutfitterName { get; set; } 
    public string LicenseNumber { get; set; } 
    public System.DateTime InjuryDate { get; set; } 
    public int InjuryHour { get; set; } 
    public int InjuryMinute { get; set; } 
} 

的json:

var data = { 
      "OutfitterId": "11", 
      "OutfitterName": "WVDNR -- For Testing", 
      "LicenseNumber": "sss", 
      "InjuryDate": "08/16/2013", 
      "InjuryHour": "sss", 
      "InjuryMinute": "0" 
     }; 

如果InjuryHour是一個數字,模型結合會工作。我的控制器中的斷點可以達到。已達到.done()的成功回調。

但是,如果我將InjuryHour更改爲文本,則會拋出500而不是400.我的控制器斷點永遠不會達到。達到.fail()的失敗回調。

+0

500錯誤並不意味着驗證失敗,這意味着服務器上存在未處理的異常。調試您的服務器代碼。 –

+0

看起來問題不在於驗證,而是實際的運行時錯誤。如果您使用開發人員工具並單擊「網絡」選項卡,則應該能夠看到錯誤。 –

+0

我假設您正在使用Chrome進行調試。但是我應該在「網絡」選項卡中查看哪些內容? – Blaise

回答

0

如果InjuryHour是一個字符串,它不能自動轉換和匹配,以PARAM InjuryNoAnnotationModel。實例,明確了行動:public ActionResult DoSomething(InjuryNoAnnotationModel model),那麼請求將不匹配it.In事實上,路線會發現行動命名爲DoSomething(int OutfitterId,string OutfitterName....**string InjuryHour**,int InjuryMinute)。所以,服務器響應500錯誤:未執行。 InjuryHour轉換爲字符串是正確的。斷點不工作必須是其他原因,你可以顯示的行動代碼?

相關問題