2011-11-10 3 views
1

コントローラのアクションの最後に返される次のコードがあります。私はわからないですC#MVCでリターンを実行するコードをどのようにカプセル化できますか?

 if (Session["CurrentUrl"] != null) { 
      var ip = new Uri((string)Session["CurrentUrl"]); 
      var ipNoPort = string.Format("{0}://{1}/{2}", ip.Scheme, ip.Host, ip.PathAndQuery); 
      return Redirect(ipNoPort); 
     } 
     return Home(); 

ことの一つは、私は戻り引数を扱うことができる方法です。むしろ持っているよりも、同じコードが、私はそれをカプセル化したいと思い何度も繰り返しました。誰も私ができることについて何か提案はありますか?

+0

ベースコントローラクラスの使用はどうですか? – Tobias

答えて

1

カスタムアクションフィルタの作成を検討します。この再利用可能なフィルタは、この動作が必要なアクションメソッドに適用できます。メソッドが実行される前または後に適用することができます。このAction Filtering in ASP.NET MVC Applications

0

ルックあなたがRedirectResultを返すべきです。あなたはいつもActionResultから派生した何かを返さなければなりません、あるいは潜在的な問題を作り出すでしょう。

いくつかのカスタム機能をカプセル化する場合は、このクラスを必要に応じて拡張できます。

+0

編集POSTアクションの最後にコードを使用して、ユーザーがデータ行に戻って編集する行を選択できるようにします。この場合、私は本当に返すべき結果を持っていません。 –

関連する問題