在我的ASP.NET MVC3应用程序中编写Ajax数据输入表单时,我有一个标准的Ajax错误处理程序,如下所示:
function handleAjaxError(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert("Request failed, status code " + statusCode);
}
我现在发现发送到handleAjaxError的参数不是Ajax上下文,而是Response对象本身,出于某种原因。
这可能是MVC3中已知的行为变化吗?这是表单设置,如果相关:
@using (Ajax.BeginForm("Create", "Attendance", null, new AjaxOptions
{ OnFailure = "handleAjaxError",
OnSuccess = "alert('success')" },
new { id = "frmCreateException" }))
{
@Html.EditorFor(m => Model)
}
控制器操作返回PartialViewResult。目前的HTTP异常是500,因为我还没有创建视图。
谢谢!
答案 0 :(得分:11)
这可能是MVC3中已知的行为变化吗?
是的,ASP.NET MVC 3使用不显眼的jQuery用于AJAX,与使用Microsoft*.js
的先前版本相反。所以传递给错误处理程序的第一个参数是jqXHR对象。
并获取响应文本和状态代码:
alert(ajaxContext.status);
alert(ajaxContext.responseText);