2013-04-09 11 views
5

HttpRequestValidationException oluştuğunda kullanıcıyı özel bir hata sayfasına nasıl yönlendirebilirim? Benim BaseController onu yakalamaya çalıştı:HttpRequestValidationException

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

Ama hala istisna olsun: Potansiyel olarak tehlikeli request.form değeri istemcisi Bu istisna yürütülmesinde çok daha erken gerçekleşir

cevap

5

den saptandı istek ve bir taban denetleyicisinde OnException yöntemiyle işlenemez. this post'da gösterildiği gibi global bir istisna eylemcisi yazabilirsiniz.

+0

Kod eklediyseniz, Server.ClearError(); basecontroller'da korumalı geçersiz kılma void OnException (ExceptionContext exceptionContext) eylemi, sonra çalışır. Ama en iyi uygulama nedir? Bu istisnayı global asax veya temel kontrolcülerimde yakalamak için? – Djave

+0

Genel bir özel durum işleyicisi, denetleyicilerinizin dışında bile gerçekleşen çok çeşitli istisnalar gerçekleştirmenize olanak tanır. Yani ben bunu tercih ettim. –

+0

Çok teşekkürler Darin – Djave