我有CustomHandleErrorAttribute
我覆盖OnException
这样的方法的地方:
public override void OnException(ExceptionContext filterContext) {
if (!filterContext.ExceptionHandled) {
if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest") {
filterContext.Result = new JsonResult {
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new {
error = true,
message = filterContext.Exception.Message
}
};
}
else {
var controllerName = (string)filterContext.RouteData.Values["controller"];
var actionName = (string)filterContext.RouteData.Values["action"];
var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
filterContext.Result = new ViewResult {
ViewName = View,
MasterName = Master,
ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
TempData = filterContext.Controller.TempData
};
}
}
}
我可以通过 AJAX 请求获取异常,而我Action
正在处理。
我有一个问题,当抛出异常时(例如在页面上/Customers/Customer/1
),我有yellow screen
,Server Error in '/' Application
但我想显示我的视图并传递给ViewData
有关异常处理的信息,然后在此页面上显示(不要重定向到CustomErrorPage
或其他任何地方)。
所以: 1. 如果我有异常 - 只显示异常信息而没有表单;2.如果我没有异常显示表格;
是否有可能,或者抛出的异常无法继续处理操作并显示相同的视图?
谢谢。