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 にリダイレクトします。

customErrors 設定で defaultRedirect パスを尊重するように asp.net mvc を取得するにはどうすればよいですか?

UDPATE: 私も ELMAH を使用して、この投稿で説明されているように HandleErrorAttribute をオーバーライドしています。.Net Reflector から、ベースの HandleErrorAttribute が Error をビューとして設定していることがわかります。Error.cshtml やその他のビューにリダイレクトすることについて、私ができることはあまりないと思います。

4

1 に答える 1

2

質問の更新で述べたように、ELMAH を使用するために、この投稿で説明されているように、HandleErrorAttribute をオーバーライドしています。基本クラスは、エラーをビューとして自動的に設定します。だから私はちょうどコメントアウトしbase.OnException(context);、それは動作します。それが最善の解決策かどうかはわかりませんが、私の目的にはうまくいくはずです。

于 2011-04-18T19:10:06.140 に答える