2017-06-15 20 views
-1

ホームコントローラの名前を_layoutページを割り当てようとしているアーティクルコントローラに渡そうとしています。1つのコントローラの名前を別のコントローラに渡す方法ASP.NET MVC 5

以下は私の試みたコードです。

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     TempData["Ctrl"] = "Home"; 
    } 
} 

public class ArticleController : Controller 
{ 
    public ActionResult Index() 
    { 
     if (TempData["Ctrl"] != null) 
     { 
      return View("Index", "~/Views/Shared/_Layout.cshtml", articles); 
     } 
     return View("Index", "~/Views/Shared/_otherLayout.cshtml", articles); 
    } 
} 

問題は、私はTempData価値を失ってるように私は(私はそれを行うにはしたくない)Homeコントローラーで一人ひとりの方法でTempData値を代入しています。私は運がない家のコントローラのコンストラクタで値を割り当てることを試みた。

誰も私を助けてくれませんか、正しい方向で私に指摘してくださいありがとう。

+0

Sessionオブジェクトにデータを割り当てることができ、あなたのシナリオは何ですか?私はあなたがメソッドを呼び出すときには取得できません。セッションにこの値を保存するだけでいいですか? –

+0

'Session [" Ctrl "]'はページリクエストを渡って動作するかもしれませんが、私は、リクエスト応答シーケンスの特定のポイントで値を失った 'TempData'を使うのではなく、セッションステートメカニズムを好みます。 –

+0

あなたは値を保持するためにセッション変数を使用することができ、1セッションに1回だけ設定する必要があります –

答えて

0

あなたは

this.HttpContext.Session.Add("Ctrl","Home")