Asp.net mvc 从异常处理筛选器重定向

Asp.net mvc 从异常处理筛选器重定向,asp.net-mvc,exception-handling,Asp.net Mvc,Exception Handling,我正在使用发布到的解决方案中的筛选器,我想知道如何重定向到该筛选器中的视图(位于/Views/Account/ErrorPage中的简单错误页面,作为AccountController的一部分)?现转载如下: public class HandleExceptionsAttribute : HandleErrorAttribute { public override void OnException(ExceptionContext filterContext)

我正在使用发布到的解决方案中的筛选器,我想知道如何重定向到该筛选器中的视图(位于/Views/Account/ErrorPage中的简单错误页面,作为AccountController的一部分)?现转载如下:

public class HandleExceptionsAttribute : HandleErrorAttribute
    {
        public override void OnException(ExceptionContext filterContext)
        {
            var expception = filterContext.Exception;

            // Go to generic error page:

        }
    }

谢谢。

设置filterContext.Result

        filterContext.Result = new ViewResult
        {
            ViewName = "<view name>",
            ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
            TempData = filterContext.Controller.TempData
        };
filterContext.Result=新视图结果
{
ViewName=“”,
ViewData=新的ViewDataDictionary(型号),
TempData=filterContext.Controller.TempData
};
下面是捕获错误调用的完整方法

    public override void OnException(ExceptionContext filterContext)
    {
        base.OnException(filterContext);

        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 name>",
            ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
            TempData = filterContext.Controller.TempData
        };
        filterContext.ExceptionHandled = true;
        filterContext.HttpContext.Response.Clear();
        filterContext.HttpContext.Response.StatusCode = 500;
        filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
    }
public override void OnException(ExceptionContext过滤器context)
{
base.OnException(filterContext);
var controllerName=(字符串)filterContext.RouteData.Values[“controller”];
var actionName=(字符串)filterContext.RouteData.Values[“action”];
var model=newhandleerrorinfo(filterContext.Exception、controllerName、actionName);
filterContext.Result=新的ViewResult
{
ViewName=“”,
ViewData=新的ViewDataDictionary(型号),
TempData=filterContext.Controller.TempData
};
filterContext.ExceptionHandled=true;
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.StatusCode=500;
filterContext.HttpContext.Response.TrySkipIisCustomErrors=true;
}

的语法应该是什么?我尝试了
“/Account/ErrorPage”
,但这导致了一个错误“找不到主视图或没有视图引擎支持搜索的位置…”将您的视图放在共享视图中