我有CustomHandleErrorAttribute
其中i覆蓋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.如果我沒有異常顯示錶單;
是否有可能或拋出的異常無法繼續處理操作並顯示相同的視圖?
Thx。