1

我在我的视图中使用 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"
}
4

0 回答 0