【发布时间】:2017-08-21 09:57:09
【问题描述】:
我正在用书中的代码学习 ASP.net MVC5。
public ActionResult DemoTempData()
{
ViewData["Msg1"] = "From ViewData Message.";
ViewBag.Msg2 = "From ViewBag Message.";
TempData["Msg3"] = "From TempData Message.";
return RedirectToAction("Redirect1");
}
public ActionResult Redirect1()
{
TempData["Msg4"] = TempData["Msg3"];
return RedirectToAction("GetRedirectData");
}
public ActionResult GetRedirectData()
{
return View();
}
GetRedirectData查看:
@{
ViewBag.Title = "GetRedirectData";
}
<h2>GetRedirectData</h2>
<ul>
<li>ViewData-Msg1:@ViewData["Msg1"]</li>
<li>ViewBag-Msg2:@ViewBag.Msg2</li>
<li>TempData-Msg3:@TempData["Msg3"]</li>
<li>TempData-Msg4:@TempData["Msg4"]</li>
</ul>
我知道ViewData 和ViewBag 不会传递值。
视图中的Msg3 和Msg4 应该具有价值,但它没有。
我检查Redirect1()中的值,原来Msg3是null。
我对发生的事情感到非常困惑。
【问题讨论】:
-
@TempData["Msg3"]在视图中不会有值(TempData只持续一个请求)。但是@TempData["Msg4"]应该有一个值——你是说那也是null?
标签: asp.net-mvc asp.net-mvc-5 tempdata