TempData應該爲後續請求持續存在。但是,當我在後續控制器中檢查TempData時,我得到一個null。爲什麼要清除TempData []。這是我的兩個控制器。我正在接連打電話給他們。所以TempData []應該從一個請求持續到下一個請求。下面是從控制器代碼:儘管沒有請求發生,TempData []即被清除
[HttpGet]
public ActionResult EditCampaign(int? Id)
{
ViewBag.Banner = bannerText.Replace(" ", " ");
// This is passed in case we need to add a new product or edit one. Then we'll
// need the campaign id for reference purposes.
TempData["campaign_id"] = Id;
TempData["campaignBanner"] = bannerText.Replace(" ", " ");
ViewBag.StartDate = debugger.startDate.ToShortDateString();
ViewBag.EndDate = debugger.endDate.ToShortDateString();
int Id1 = Convert.ToInt32(TempData["campaign_id"]);
int convertedId1 = Id1
這裏是我嘗試在控制器2中得到的值:
[HttpPost]
public ActionResult EditCampaign(CampaignDTO camps)
{
// Do this up top. i.e. get the campaign ID
camps.Id = Convert.ToInt32(TempData["campaign_id"]);
string success = "";
我懷疑,在控制器1可能的倒數第二行分配的TempData的值擦掉數據。如果那是新事物並且沒有記錄的情況。請幫忙。
很好的答案。謝謝 – 2014-11-20 21:25:24
完美的答案。從未在任何地方看到過。 – 2014-11-20 21:32:46