我想在override方法OnException中处理异常,代码如下: 如果我设置filterContext.ExceptionHandled = true; 返回视图将显示一个空白视图。 我不希望它重定向到500页。 我怎么能这样做?
protected override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
var exception = new HttpException(null, filterContext.Exception);
if (exception.GetHttpCode() == (int)HttpStatusCode.InternalServerError)
{
if (WebConstants.systemHandleExceptionList.Contains(filterContext.Exception.GetType()))
{
//process the error
SaveErrorMessage(filterContext.Exception.GetType().Name);
filterContext.ExceptionHandled = true;
}
else
{
//record the unhandle message to log
errorlog.Error("", filterContext.Exception);
}
}
}
答案 0 :(得分:0)
您可以在将标志设置为true后立即将其重定向到其他页面。见下面的例子
RouteValueDictionary errorRouteValues = new RouteValueDictionary( new { controller = "Error", action = "Action" } );
filterContext.Result = new ActionRedirectResult( errorRouteValues );
filterContext.Cancel = true;