リダイレクトを使用RedirectToAction("MyView", "MyController")
すると、宛先ビューのレンダリングが非常に遅くなることがあります。
それは常に起こるわけではありません。
IIS7.5でASP.net MVC4を使用しています
この問題を回避し、リダイレクトを高速化するにはどうすればよいですか?
リダイレクトを使用RedirectToAction("MyView", "MyController")
すると、宛先ビューのレンダリングが非常に遅くなることがあります。
それは常に起こるわけではありません。
IIS7.5でASP.net MVC4を使用しています
この問題を回避し、リダイレクトを高速化するにはどうすればよいですか?
コメント セクションではコードがうまく表示されないため、ここに記載します。リダイレクト先のアクション メソッドが現在使用しているコントローラーと同じコントローラー内にある場合は、RedirectToAction メソッドによって生成されたリダイレクト応答の代わりに、そのメソッドを直接呼び出してその結果を返す方が簡単で効率的です。同じページにいることを確認するために、RedirectToAction は実際にリダイレクト応答 (302) をクライアントに返し、MSDN http://msdn.microsoft.com/に従って指定したアクション メソッドに新しい要求を発行するように依頼します。 en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.108).aspx . 説明するコード:
public ActionResult MyAction(){
//do some work here
Return View(MyModel);
}
public ActionResult ActionIAmCurrentlyIn(){
//Do Soe work here
return RedirectToAction ("MyAction", "MyController"); //This costs an extra trip across the wire
return MyAction(); // Does same thing but without the extra trip to the client
}
「MyAction」に渡されるパラメータがあり、ネットワーク速度が低下する場合、余分なトリップのオーバーヘッドはより重要になります。
あなたはそれを使用することができますRedirectToActionPermanent("View","Controller");
。