它就像从会话变量中读回值并将其转换为原始类型一样简单,然后做任何你想做的事情
例子:
@{
if(Session["list"]!= null)
{
var listBackFromSession = (List<Carrito>)Session["list"];
// do what you want
}
}
我的建议是使用 ViewBag 更优雅的方式。
来自官方 asp.net mvc 网站关于 Viewbag 的引用:
新的“ViewBag”属性
MVC 2 控制器支持 ViewData 属性,该属性使您能够使用后期绑定字典 API 将数据传递到视图模板。在 MVC 3 中,您还可以使用更简单的语法和 ViewBag 属性来完成相同的目的。例如,您可以编写 ViewBag.Message="text",而不是编写 ViewData["Message"]="text"。您无需定义任何强类型类即可使用 ViewBag 属性。因为它是一个动态属性,所以您可以改为获取或设置属性,它会在运行时动态解析它们。在内部,ViewBag 属性作为名称/值对存储在 ViewData 字典中。(注意:在 MVC 3 的大多数预发布版本中,ViewBag 属性被命名为 ViewModel 属性。)
此外,这是一篇关于 MVC 中保存数据的不同方式的好文章:http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp。 net-mvc-3-应用程序
例子:
var list = new List<Carrito> {
new Carrito { ProductId = producto.ID , Cantidad = 1, PrecioUnitario = producto.Precio }
};
// use ViewBag
ViewBag.myList = list;
then inside your view, read them back like this:
var myList = (List<Carrito>)ViewBag.myList;
// your code