2017-10-30 14 views
0

두 솔루션은 다음과 같습니다MVC에서 리디렉션하지 않고 404 URL에 대한보기를 반환하고 싶습니다! 그것을하는 방법? 내가 생각할 수있는

  1. 은 어떻게 든 모두 404 개 요청 (지금 그것을 할 수없는 방법) 어떻게 든보기를 렌더링의 Global.asax함으로써 Application_Error에서

  2. 을 데리러 컨트롤러를 바칩니다 컨트롤러를 통해 결과를 응답에 씁니다 (수행 방법을 모름).

첫 번째 옵션이 더 적합합니다.

답변

0

답변 (2. 해결책)을 찾았습니다! :)이 들어

당신은 Web.config의 사용자 지정 오류를 해제해야합니다 :

<customErrors mode="Off">

void Application_Error(object sender, EventArgs e) 
    { 
     Exception ex = Server.GetLastError(); 

     if (ex is HttpException) 
     { 
      var defaultController = new Controllers.ErrorController(); 
      defaultController.ControllerContext = new ControllerContext(this.Request.RequestContext, 
       defaultController 
      ); 
      var res = defaultController.NotFound(); 
      res.ExecuteResult(defaultController.ControllerContext); 
      Server.ClearError(); 
      Response.TrySkipIisCustomErrors = true; 
     } 
    }