我在我的视图中使用 Ajax.BeginForm,并在我的 .js 中提供了一个 OnFailure 处理程序,但它永远不会被调用。我尝试在我的控制器中抛出异常(抛出新的 HttpException(500,“内部错误”)),但它永远不会被调用。 原因似乎是我在 web.config 中打开了自定义错误。 我想要做的是处理我的控制器中的任何异常或错误,并将它们传递给我的 .js 文件中的 OnFailure 处理程序,就像关闭了自定义错误一样。有没有办法做到这一点?
解决了:
即使在 web.config 中打开 customerrors 也可以工作...
我处理这个问题的方法是设置Response.StatusCode = 500并将 Header 附加到我的响应对象Response.AppendHeader("MyResponseHeader", "My Message");
在我的 .js OnFailure 处理程序中......
function OnFailure(ajaxContext) {
alert(ajaxContext.status); // 500
alert(ajaxContext.getResponseHeader("MyResponseHeader")); // "My Message"
}