我正在尝试编写一个FilterAttribute,IExceptionFilter全局错误处理属性,该属性应该提供自定义错误视图。我重写public void OnException(ExceptionContext context)并执行
context.HttpContext.Response.Clear();
context.HttpContext.Response.TrySkipIisCustomErrors = true;
context.HttpContext.Response.StatusCode = 403;
context.ExceptionHandled = true;
context.Result = new ViewResult { ... not sure what to put here... }
这是我被困的地方。 到目前为止我尝试过的所有内容都会让我看到内部服务器错误页面。我怀疑我想要像
这样的东西context.Result = new ViewResult
{
ViewName = "~/Errors/ReadOnlyMode.cshtml",
}
然而,这似乎不起作用(内部服务器错误......)。
答案 0 :(得分:3)
这应该有效
context.Result = new ViewResult
{
ViewName = "~/Views/Errors/ReadOnlyMode.cshtml",
}
答案 1 :(得分:1)
context.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "Controller", "Errors" },
{ "Action", "ReadOnlyMode" }
});
这对我来说很好。