I am learning ASP.net MVC5 with the code in book.
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
view:
@{
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>
I know that ViewData
and ViewBag
will not pass value.
The Msg3
and Msg4
in view should have value, but it doesn't.
I check the value in Redirect1()
, it turns out that Msg3
is null
.
I am very confused with what's going on.