2011-09-17 63 views
4

當寫在我的ASP.NET應用程序MVC3 Ajax的數據輸入形式,我有一個標準的AJAX錯誤處理程序,沿着線:Ajax.BeginForm onFailure處調用與響應,不AjaxContext

function handleAjaxError(ajaxContext) { 
    var response = ajaxContext.get_response(); 
    var statusCode = response.get_statusCode(); 
    alert("Request failed, status code " + statusCode); 
} 

我現在發現發送給handleAjaxError的參數不是一個Ajax上下文,而是出於某種原因,響應對象本身。

這是MVC3中已知的行爲改變嗎?這裏是表單設置,如果這是相關的:

@using (Ajax.BeginForm("Create", "Attendance", null, new AjaxOptions 
    { OnFailure = "handleAjaxError", 
     OnSuccess = "alert('success')" }, 
new { id = "frmCreateException" })) 
{ 
    @Html.EditorFor(m => Model) 
} 

控制器操作返回一個PartialViewResult。目前的HTTP異常是500,因爲我還沒有創建視圖。

謝謝!

回答

11

這是MVC3中已知的行爲改變,也許?

是的,ASP.NET MVC 3使用不引人注意的jQuery用於AJAX的東西,與之前的版本相反,它使用了Microsoft*.js。所以傳遞給錯誤處理程序的第一個參數是jqXHR對象。

並獲得響應文本和狀態碼:

alert(ajaxContext.status); 
alert(ajaxContext.responseText); 
+0

謝謝你,找不到任何地方。 –

相關問題