2011-01-06 10 views
0

私のWebページにはAsp.Net MVCが使用されています。そして私は自分のWebページの訪問者にカスタムエラーメッセージを表示しようとしているので、私はweb.configにcustomerrorsのための最善の方法asp.net MVC画像

<customErrors mode="On" defaultRedirect="/Error" > 
    </customErrors> 

を追加しました。

Webページで例外が発生したときに発生するインデックスアクションを持つエラーコントローラがあります。

しかし、サーバー上にない画像やjavascriptファイルを要求すると、このタイプのリクエストでカスタムエラーが発生し、カスタムエラーページがサーバーから届きました。

私はこれがエラーのための良い解決策ではないと思います。ブラウザは画像を待っているが応答はウェブページなので、

  • 質問1 - 特定のファイルタイプのカスタムエラーを無効にしたいが、その方法を知らない。

  • 質問2 - 404,500などのエラーがある場合は、エラーと同じレスポンスコードが表示されます。

カスタムエラーの応答コードは302です。実際のエラーコードが表示されます。

私の最初の質問に対する解決策を見つけましたが、それがベストプラクティスであることはわかりません イメージフォルダにイメージがありますので、イメージフォルダの特定の構成を作成します。

私は私のweb.configファイルに

<location path="Images"> 
    <system.web> 
     <customErrors mode="Off"></customErrors> 
    </system.web> 
    </location> 
  • 質問3この行を追加した - それは良い解決策ですが?
+0

画像が見つからない場合はどうすればいいですか? –

答えて

0

ErrorイベントにサブスクライブするHttpModuleを作成します。 StatusCodeと404(見つからない)が要求されたファイルをチェックしているかどうか確認してください。イメージの場合は、Exceptionをクリアし、StatusCodeを404以外の値に設定すると、customErrorページにヒットしません。

元のステータスコードを維持することについては、HttpModuleに保存してエラーコントローラに戻すことができます。

関連する問題