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 にリダイレクトします。
customErrors 設定で defaultRedirect パスを尊重するように asp.net mvc を取得するにはどうすればよいですか?
UDPATE: 私も ELMAH を使用して、この投稿で説明されているように HandleErrorAttribute をオーバーライドしています。.Net Reflector から、ベースの HandleErrorAttribute が Error をビューとして設定していることがわかります。Error.cshtml やその他のビューにリダイレクトすることについて、私ができることはあまりないと思います。