【发布时间】:2012-03-11 23:24:38
【问题描述】:
已解决,见下文
在我的控制器中...
[HttpPost]
public ActionResult Reject(RevisionRejectModel model)
{
throw new HttpException(500, "Internal Error");
...
}
在我看来...
@using (Ajax.BeginForm("Reject", "Revision", new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "RejectOnBegin",
OnFailure = "RejectOnFailure",
OnSuccess = "RejectOnSuccess",
OnComplete = "RejectOnComplete"
}))
...
在我的 .js 中...
function RejectOnFailure(ajaxContext) {
alert("Never hit!");
}
已解决
问题是 web.config 中开启了 customerrors... 即使在 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"
}
【问题讨论】:
标签: asp.net-mvc-3 razor asp.net-ajax