【发布时间】:2016-01-22 10:19:19
【问题描述】:
为什么在 TempData 中添加许多项时 TempData 总是为空?
我在控制器中的代码:
TempData[Partial1.TempDataKey] = "bla bla";
TempData[Partial2.TempDataKey] = "bla bla 2";
我的布局代码:
@{Html.RenderPartial(MVC.Administrator.Shared.Views._Partial1);}
@{Html.RenderPartial(MVC.Administrator.Shared.Views._Partial2);}
我在 _Partial1 中的代码:
<span>@(TempData.ContainsKey(Partial1.TempDataKey))</span>
我在 _Partial2 中的代码:
<span>@(TempData.ContainsKey(Partial2.TempDataKey))</span>
结果总是:
<span>False</span>
<span>False</span>
当我在控制器中删除它们时:
TempData[Partial1.TempDataKey] = "bla bla";
//TempData[Partial2.TempDataKey] = "bla bla 2";
那么结果是:
<span>True</span>
【问题讨论】:
-
使用 ViewBag 或 ViewData 代替您的临时数据。原因是 Tempdata 仅对控制器到控制器的数据传递有用。同样,一旦您阅读它,它的生命就结束了。
-
viewbag 和 viewdata :如果发生重定向,则其值为 null。
标签: c# asp.net-mvc asp.net-mvc-5 tempdata