2016-11-17 64 views
0

我有一個ASP.NET MVC應用程序如何返回404頁,我有我自己的錯誤處理模塊,它看起來像:如果路徑錯誤非法字符在ASP.NET滿足MVC

public class ErrorHandlingModule : IHttpModule 
{ 
     public void Init(HttpApplication context) 
     { 
     context.Error += Context_Error; 
     } 

     public void Dispose() { } 

     void Context_Error(object sender, EventArgs e) { } 

} 

有我處理不同類型的例外,如HttpException和其他類型的自定義例外。

我想檢查Illegal characters in path異常是否符合,然後返回404頁面。 (如用戶插入http://www.website.com/test"

默認返回500錯誤頁面。

有什麼更好的方法來做到這一點?通過比較例外的消息,通過HRESULT ...?

回答

0

只需改變你的HttpResponse的狀態,NOTFOUND(404):

Response.StatusCode = HttpStatusCode.NotFound; 

你可以從目前的情況下,WebOperationContext.Current.OutgoingResponse響應。

如果您嘗試捕獲不良的傳入請求 - 也就是說,請求的URI具有無效的路徑字符 - 您必須與WCF對抗或重新配置它以獲取該信息,因爲它是由鏈消息處理程序在它被分派到您的應用程序之前。

+0

我的問題是如何檢測該異常,而不是返回404錯誤...我想爲標題錯誤中提到的,要重定向404頁面。 –

+0

你是怎麼得到'WebOperationContext.Current.OutgoingResponse'?我沒有WCF!我有ASP.NET MVC –