我看不出这段代码有什么问题:
var listShoppingCart = Session["ShoppingCart"];
foreach (var item in listShoppingCart)
{
}
我在foreach循环中的listShoppingCart
下方得到一条红线。当我将鼠标悬停在红线上时,消息是Foreach语句无法对变量类型'object'进行操作,因为'object'不包含'GetEnumerator'的公共定义
我用这样的会话声明列表:
Session["ShoppingCart"] = new List<Products>();
答案 0 :(得分:5)
您需要转换会话对象
var listShoppingCart = Session["ShoppingCart"] as List<Products>;
if (listShoppingCart != null)
{
// Do stuff...
}
在上面的代码中,我们在关键字“ShoppingCart”中获取位于会话中的对象,并将该对象强制转换为List<Products>
。如果无法完成强制转换,则listShoppingCart
将为空。
答案 1 :(得分:0)
因为Session类型为HttpSessionState
,所以它实现了ICollection
。
会话值存储在实现Dictionary<string,object>
的{{1}}中。您需要键入强制转换对象才能枚举列表。