2017-06-15 40 views
-1

我試圖將主控制器的名稱傳遞給文章控制器,我試圖分配一個_layout頁面。如何將一個控制器的名稱傳遞給另一個控制器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

您可以使用會話變量來保存值,並且您只需要爲一個會話設置一次 –

回答

0

您可以在Session對象

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

相關問題