2016-05-13 129 views
3

我趕上未處理用我Global.asax文件中的Application_Error方法的錯誤,這是我到目前爲止有:顯示錯誤頁面MVC

protected void Application_Error(object sender, EventArgs e) 
    { 
     Exception exception = Server.GetLastError(); 
     Response.Clear(); 

     HttpException httpException = exception as HttpException; 

     if(httpException != null) 
     { 
      string action; 

      switch(httpException.GetHttpCode()) 
      { 
       case 404: 
        action = "404"; 
        break; 
       case 500: 
        action = "500"; 
        break; 

       default: 
        action = "Other"; 
        break; 
      } 

       Server.ClearError(); 

       Response.Redirect(String.Format("~/Error/?error=" + action + "&message=" + exception.Message)); 
     } 
    } 

但是我真的不喜歡重定向用戶的想法到錯誤頁面,事實上我希望URL保持不變。

例如,當頁面不存在時,它不應該重定向到URL中的路徑,而應該保留在同一頁面上,但仍顯示錯誤。

有誰知道如何做到這一點?

回答

0

我的解決方案很像您的解決方案重定向,但取決於您的部署方式,我會通過在IIS中自定義錯誤頁面來完成此操作。

Check Out this answered question

+0

這聽起來很簡單,但卻很難。我所知道的只是在Application_Error渲染錯誤視圖?而不是重定向 – KTOV