我在我的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"
}