2017-10-30 4 views
0

つの解決策は以下のとおりです。MVCでは、リダイレクトしないで、404のURLのビューを返すようにしたいと思います!どうやってするの?私は考えることができる

  1. はどういうわけか、すべての404件の要求(今それを行うにはありませんどのように)何とかビューをレンダリングのGlobal.asaxのApplication_Errorで

  2. を拾うためにコントローラを捧げますレスポンスに結果を書き込む(それを行う方法はわかりません)。

第1のオプションが私にとってもっとお勧めです。

答えて

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; 
     } 
    } 
関連する問題