2012-05-07 29 views
0

我在我的控制器中有兩個行動結果。概述和關於。MVC3控制器行動結果'記住'通過身份證

public ActionResult Overview(int id) 
{ 
    return View(new OverviewModel() { Project = db.People.Find(id) }); 
} 

public ActionResult About(int id) 
{ 
    return View(new AboutModel() { Project = db.People.Find(id) }); 
} 

我想記住傳入Overview的id並將其作爲默認值使用。我不知道如何在用戶將標籤從「概覽」切換到「關於」時如何保持此ID不變。

+0

爲什麼不把它放在會話中工作? – mccow002

+0

將它放入會話中意味着什麼? –

+1

贊同布蘭登的回答,除了會議而不是TempData – mccow002

回答

5

您可以嘗試將該ID存儲在TempData中。也許像這樣(未測試)

public ActionResult Overview(int id) 
{ 
    TempData["YourId"] = id; 
    return View(new OverviewModel() { Project = db.People.Find(id) }); 
} 

public ActionResult About(int? id) 
{ 
    id = id ?? int.Parse(TempData["YourId"].ToString()); 
    return View(new AboutModel() { Project = db.People.Find(id) }); 
} 
+0

你能詳細說說TempData是什麼嗎?謝謝你的工作。 –

+0

@dnxviral,TempData與ViewData類似,只是它持續存在兩個連續的請求,使它對於在兩個不同的控制器操作之間傳遞數據等有用。 – Brandon

+2

MVC中的TempData實際上一直持續到檢索。作爲參考Tempdata實際上存儲在用戶SessionState中,因此它比SessionData更像SessionData。 http://msdn.microsoft.com/en-us/library/dd394711.aspx –

0

如果此數據不敏感,也可以使用隱藏的html屬性。它爲我們創造了奇蹟,它爲我們節省了大量的處理能力。