0

Word ドキュメントを生成する MVC アクションがあります。

    [HttpGet]
    public ActionResult ExportToWord(string docId)
    {
    try
    {
      //...
      //Word-document generating is done here...
      //...
      return File(stream, MIMEAssistant.GetMIMEType("docx"), fileName + ".docx");
    }
    catch (Exception e)
    {
        throw new Exception("Problem with generating! " + e.ToString());
    }

もしそうなら、URLでAsp.Net標準例外を取得します

http://localhost:18314/Export/ExportToWord?docId=5

もしそうなら、私は同じURLを持っています。リダイレクトは行われません。それはに行く必要があります

http://localhost:18314/Home/ErrorPage.

現在、ユーザーはエラー ページを表示せず、ページをリロードするだけです。URL が間違っているため、ページが正しくリロードされません

http://localhost:18314/Export/ExportToWord?docId=5

わかりやすい説明だったと思います:)

質問: Elmah ログ機能を使用して .../Home/ErrorPage に正しくリダイレ​​クトし、例外を送信するにはどうすればよいですか?

4

1 に答える 1

2

return RedirectToAction("ErrorPage", "Home");例外をスローする代わりにできます。RedirectToActionルート値を渡すことができるオーバーロードがあります (エラー ID、例外タイプなどを渡すことができます)。

アップデート

ELMAH を使用して例外をログに記録したい場合は、エラーを手動でログに記録し、次のようにアクションにリダイレクトすることをお勧めします。

catch(Exception e)
{
    Elmah.ErrorSignal.FromCurrentContext().Raise(e);
    return RedirectToAction("ErrorPage", "Home");
}
于 2012-11-01T12:41:44.677 に答える