2010-03-31 91 views
1

我有OnSuccess的Ajax.BeginForm & OnFailure JavaScript處理程序。如何在ASP.Net MVC中失敗Ajax.BeginForm?

如何從我的控制器失敗,以便OnFailure被調用?

是的,我用來調用拋出新的HttpException(404),它用於工作。

但是現在,我設置了一個調用Server.ClearError()的自定義錯誤處理程序。由於這個Ajax.BeginForm認爲沒有錯誤發生。

我使用這裏給出的錯誤處理程序:ASP.NET MVC Custom Error Handling Application_Error Global.asax?

回答

1

你應該只能夠拋出異常。 HttpException(404)未找到,我認爲這不是OnFaiulre的異常。任何導致HTTP 500的應該被腳本解釋爲錯誤。

+0

我認爲這是上面的2XX範圍內什麼,但無論如何,如果是的customErrors在web.config中,它永遠不會被調用。 – gangelo 2012-02-23 03:48:42

0

我處理這個問題的方法是設置Response.StatusCode = 500並將一個Header附加到我的響應對象Response.AppendHeader(「MyResponseHeader」,「My Message」);

在我的.js onFailure處處理...

function OnFailure(ajaxContext) { 
    alert(ajaxContext.status); // 500 
    alert(ajaxContext.getResponseHeader("MyResponseHeader")); // "My Message" 
}