0
我想抛出ajax调用客户端的异常,但我没有状态代码。 我会怎样处理ajax错误函数的错误。无法抛出从控制器的AJAX调用异常
当我调用ajax函数时,它会在SaveAccount控制器上生成一些异常,我通过HandleExceptionAttribute处理它,并且我最终返回json,但它碰到了成功函数insted error。 请帮忙。由于
public class HandleExceptionAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest() && filterContext.Exception != null)
{
filterContext.Result = new JsonResult
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new
{
filterContext.Exception.Message,
}
};
filterContext.ExceptionHandled = true;
}
else
{
base.OnException(filterContext);
}
}
}
[HandleExceptionAttribute]
[AllowAnonymous]
[HttpPost]
public ActionResult SaveAccount(AccountViewModel vm)
{
try
{
using (var context = new AdvisorFinancialEntities())
{
..........
context.SaveChanges();
}
}
catch (Exception ex)
{
Exception e = new Exception("Failed to save account");
e.Data.Add("Accounts", "SaveAccount");
throw e;
}
return Json(true, JsonRequestBehavior.AllowGet);
}
$.ajax({
url: '@Url.Action("SaveAccount", "Accounts")',
cache: false,
type: 'POST',
contentType: 'application/json',
data: jsonData,
success: function (result) {
ShowToastMessage("Account has been saved successfully", "Success",true);
Reset();
},
error: function (xhr, textStatus, errorThrown) {
var err = JSON.parse(xhr.responseText);
ShowToastMessage(err.Message, "Save Account",false);
}
});