在我的 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 或其他视图,我认为我无能为力。