2016-05-13 3 views
3

Я ловила необработанной ошибки, используя Application_Error метод в моем Global.asax файле, это то, что я до сих пор:Отображение страницы ошибок 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)); 
     } 
    } 

Однако я действительно не нравится идея перенаправления пользователя на страницу с ошибкой, infact Я бы хотел, чтобы URL-адрес остался прежним.

Например, если страница не существует, она не должна перенаправляться на путь в URL-адресе, вместо этого она должна оставаться на одной странице, но все равно отображать ошибку.

Кто-нибудь знает, как это сделать?

ответ

0

Мое решение перенаправляется так же, как ваше, но в зависимости от того, как вы развертываете, я бы это сделал, настроив сами страницы ошибок в IIS.

Check Out this answered question

+0

Звучит так просто, но все же так сложно. Все, что я знаю, что нужно сделать, это в Application_Error отобразить представление ошибки? Вместо перенаправления – KTOV

Смежные вопросы