5

在我的 web.config 的 customErrors 标记中,我指向一个控制器。在我的控制器中,我重定向到由多个应用程序共享的外部错误页面。

<customErrors defaultRedirect="~/Error/ServerError" mode="On">

我的控制器:

public class ErrorController : Controller
{

    public ActionResult ServerError()
    {
        return Redirect("/Systems/ASPNETErrorHandling/ErrorPage.aspx");
    }

    public ActionResult ErrorTest()
    {
        throw new Exception("testing error handling");
    }
}

我正在调用 Error/ErrorTest 来测试错误处理。但它总是重定向到 Views/Shared/Error.cshtml 而不是重定向到我指定的控制器。

如何让 asp.net mvc 在我的 customErrors 设置中遵守 defaultRedirect 路径?

UDPATE:我也在使用 ELMAH 并覆盖了 HandleErrorAttribute,如本文所述。我从 .Net Reflector 看到基本 HandleErrorAttribute 将 Error 设置为视图。对于重定向到 Error.cshtml 或其他视图,我认为我无能为力。

4

1 回答 1

2

就像我在我的问题更新中所说的那样,我正在重写本文中描述的 HandleErrorAttribute使用 ELMAH。基类自动将 Error 设置为视图。所以我只是注释掉base.OnException(context);并且它有效。我不知道这是否是最好的解决方案,但我认为它应该适合我的目的。

于 2011-04-18T19:10:06.140 回答