ASP.NET MVC 3中的动态TempData

3
我一直在尝试使用ASP.NET MVC 3运行网站,我发现了新的动态ViewModel。使用它可以快速将值传递给视图,而不需要使用“魔术字符串”。我想知道是否有类似的东西可以用于TempData,在RedirectToAction之后仍然保留其值。
谢谢。
2个回答

4

TempData在MVC 3中不是动态的(至少我能发现的是这样),例如,以下语法无法编译:

TempData.Account = "Geronimo"

因为类型上不存在 Account 属性/字段。

ViewBag 是动态的。

ViewBag.Acount = "Geronimo" 

编译。


2

如果您想要,您可以启用与Web表单中使用的会话状态相同的会话状态,并使用它来存储数据。只需在Google中搜索“ASP.NET MVC中的会话状态”即可了解更多信息。

当您这样做时...

TempData("test") = "cool string"

您可以稍后使用tempdata.test访问它(尽管他们不确定是否将其保留为tempdata还是更改它)。


我知道可以使用会话(sessions)。但是 TempData 的好处在于它在请求后自动销毁。我想知道是否有类似于新的动态 ViewModel 但用于 TempData 的东西。 - Carles Company
TempData现在是动态的,据我所知,它的工作方式与动态视图模型非常相似。如果您能够将东西存储在视图模型中,那么最好使用视图模型,因此,除了在执行示例MVC代码或观看MVC教程视频时,我从来没有使用过TempData,因为它们总是在示例中使用TempData。 - Erx_VB.NExT.Coder
无论 TempData 存储在何处,请记住,在读取值后,它会立即被删除。这样做 var x = TempData["test"] 将意味着该值将在任何后续请求中丢失。 - Razor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接