2010-03-31 82 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" 
}