1

我正在尝试编写一个 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",
}

但是,这似乎不起作用(内部服务器错误......)。

4

2 回答 2

3

这应该工作

context.Result = new ViewResult
{
    ViewName = "~/Views/Errors/ReadOnlyMode.cshtml",
}
于 2013-01-22T07:11:57.983 回答
1
context.Result = new RedirectToRouteResult(
    new RouteValueDictionary 
    { 
        { "Controller", "Errors" }, 
        { "Action", "ReadOnlyMode" } 
    });

这对我来说很好。

于 2013-01-22T01:03:29.933 回答