Asp.net mvc 从异常处理筛选器重定向
我正在使用发布到的解决方案中的筛选器,我想知道如何重定向到该筛选器中的视图(位于/Views/Account/ErrorPage中的简单错误页面,作为AccountController的一部分)?现转载如下: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)
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”
,但这导致了一个错误“找不到主视图或没有视图引擎支持搜索的位置…”将您的视图放在共享视图中