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