0

私は mvc 3 アプリケーションを持っています。これは、標準ジェネリック スロー新しい例外がコードでスローされると、Views\Shared\error.cshtml からのエラー ページが表示されます。これは、設定するだけで実行できます <customErrors mode="On"/>. (これは期待どおりであり、望ましいものです)。

アプリケーションは中間層で WCF サービスを使用しており、これらのサービスが FaultException を生成すると、MVC でエラー ページが表示されず、ユーザーへの Web サービス呼び出しの詳細が画面に表示されます。私がやりたいことは、コードでエラーを処理し、ユーザーに Error.cshtml を表示することだけです。グローバル asax を変更しようとしましたが、これは機能しません。

   protected void Application_Error(object sender, EventArgs e)
    {
      Exception exception = Server.GetLastError();
      if (exception.GetType() == typeof(FaultException))
      {
        throw new Exception("There was a fault exception that i do not want to show details of to user.");

      }
    }
4

2 に答える 2

0

エラーコントローラ/ビューを作成し、キャッチブロックで選択したカスタムエラーページにリダイレクトすることもできます

    try
    {
        foo.bar()      
    }
    catch(SpecificException)
    {
       RedirectToAction("500", "Error");
    }
于 2012-03-30T14:55:18.463 に答える
0

そのページを無視するように指定しない限り、MVC は web.config で指定したリンクを {Controller}/{View} として解決しようとするため、ErrorController を作成してみてください。また、代わりに属性を適用して例外を処理することもできます。

于 2012-03-30T14:51:04.527 に答える