Asp.net mvc 4 ASP.NETMVC4。RedirectToRouteResult在自定义异常筛选器中

Asp.net mvc 4 ASP.NETMVC4。RedirectToRouteResult在自定义异常筛选器中,asp.net-mvc-4,Asp.net Mvc 4,我有一个自定义异常筛选器属性: public class RedirectOnErrorAttribute : FilterAttribute, IExceptionFilter { #region IExceptionFilter Members public void OnException(ExceptionContext filterContext) { if(filterContext.ExceptionHandled) r

我有一个自定义异常筛选器属性:

 public class RedirectOnErrorAttribute : FilterAttribute, IExceptionFilter {

        #region IExceptionFilter Members

        public void OnException(ExceptionContext filterContext) {
            if(filterContext.ExceptionHandled) return;

            filterContext.Controller.TempData["Exception"] = filterContext.Exception;
            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new {area = "Desktop", controller = "Exception", action = "HandleError" }));
            filterContext.ExceptionHandled = true;
            filterContext.HttpContext.Response.Clear();
            filterContext.HttpContext.Response.StatusCode = 500;
            filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
        }

        #endregion
    }
“ExceptionController”的操作“HandleError”包含一些业务逻辑。
在“HandleError”操作中

public ActionResult HandleError() {
        Exception ex = (Exception)TempData["Exception"];
        logger.Log(ex);
}
在ex变量中,我总是收到异常消息“执行处理程序的子请求时出错”System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper“

如何解决我的问题?

您可以尝试查看
ex.InnerException
。如果它不为null,则可能包含更多有用的信息。

ex.InnerException={“不允许子操作执行重定向操作。”}我希望您没有将
RedirectOneErrorAttribute
放在子操作或包含子操作的控制器上。不能从子操作重定向。