我正在使用会话变量在ASP.NET中创建一个购物篮,将数据从shopping.aspx页面传递到basket.aspx,目前我的页面传递了产品的主键,并在篮子上显示了gridview .aspx用于显示数据库中的数据。
然而,这仅适用于一次一个项目,如何扩展会话变量以便添加多个产品以及数量等?
答案 0 :(得分:2)
您可以将(几乎)任何对象放入会话中,而不仅仅是字符串。因此,您可以使用List<string>
获取密钥列表,甚至使用List<Product>
。
修改强>
所以在第一页你会得到
var bookids = new List<string>();
// collect all book IDs into the 'bookids' list
Session["bookIDs"] = bookids;
并在第二页中:
var bookids = Session["bookIDs"] as List<string>;
// use all IDs
答案 1 :(得分:2)
您可以使用自己的对象,例如。篮子里可以有一个或多个属性。
对象应该是市场化的Serializable。
例如:
[Serializable]
public class Basket
{
public List<BasketItem> Items {get;set;}
public int UserId {get;set;}
}
[Serializable]
public class BasketItem
{
//...
}