Ajax.BeginForm OnFailure永远不会被调用

时间:2012-02-23 02:05:03

标签: asp.net-mvc-3 asp.net-ajax asp.net-mvc-ajax

我在我的View中使用Ajax.BeginForm,并在我的.js中提供OnFailure处理程序,但它永远不会被调用。我已经尝试在我的控制器中抛出异常(抛出新的HttpException(500,“内部错误”)),它永远不会被调用。 原因似乎是我在web.config中打开了客户端错误。 我想要做的是处理控制器中的任何异常或错误,然后传递它们我的.js文件中的OnFailure处理程序,就像关闭了客户端一样。有没有办法做到这一点?

解决:

即使在web.config中打开了客户错误也可以工作......

我处理此问题的方法是设置 Response.StatusCode = 500 并将Header附加到我的响应对象 Response.AppendHeader(“MyResponseHeader”,“My Message”);

在我的.js OnFailure处理程序中......

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

0 个答案:

没有答案