2013-04-09 46 views
5

HttpRequestValidationExceptionが発生した場合、ユーザーをカスタムエラーページにリダイレクトする方法を教えてください。 私はbasecontrollerでそれをキャッチしようとした:HttpRequestValidationExceptionをキャッチする方法

protected override void OnException(ExceptionContext exceptionContext) 
    { 
     if (exceptionContext.Exception is HttpRequestValidationException) 
     { 
      this.View("CustomError").ExecuteResult(this.ControllerContext); 
     } 
    } 

しかし、私はまだ例外を取得: 潜在的に危険のRequest.Form値がこの例外は、の実行にかなり早い時期に発生したクライアント

答えて

5

から検出されましたこの要求はベースコントローラのOnExceptionメソッドで処理することはできません。 this postに示すように、グローバル例外ハンドラを書くことができます。

+0

コードを追加すると、Server.ClearError(); protectedオーバーライドvoid OnException(ExceptionContext exceptionContext)basecontrollerのアクション。しかし、ベストプラクティスは何ですか?グローバルasaxまたは私のbasecontrollerでこの例外をキャッチするには? – Djave

+0

グローバル例外ハンドラを使用すると、コントローラの外部で発生しているより広い範囲の例外を処理できます。それが私が選ぶだろう。 –

+0

ありがとうダーリン – Djave

関連する問題