是否可以在Asp.net C#中存储列表到会话变量?
答案 0 :(得分:61)
是的,您可以存储任何对象(我假设您使用的是默认设置的ASP.NET,这是进程内会话状态):
Session["test"] = myList;
您应该将其转换回原始类型以供使用:
var list = (List<int>)Session["test"];
// list.Add(something);
正如Richard指出的那样,如果您正在使用其他需要对象可序列化的会话状态模式(例如SQL Server),则应格外小心。
答案 1 :(得分:19)
是。你在为哪个平台写作? ASP.NET C#?
List<string> myList = new List<string>();
Session["var"] = myList;
然后,检索:
myList = (List<string>)Session["var"];
答案 2 :(得分:5)
我在页面范围之外的类文件中找到了上述方式(我一直使用的方法)不起作用。
我在这个“上下文”中找到了一个解决方法如下:
HttpContext.Current.Session.Add("currentUser", appUser);
和
(AppUser) HttpContext.Current.Session["currentUser"]
否则,当我将对象指向会话对象时,编译器期待一个字符串。
答案 3 :(得分:1)
试试这个..
Framelayout/fragment
答案 4 :(得分:1)
YourListType ListName = (List<YourListType>)Session["SessionName"];
答案 5 :(得分:-2)
public class ProductList
{
public string product{get;set;}
public List<ProductList> objList{get;set;}
}
ProductList obj=new ProductList();
obj.objList=new List<ProductList>();
obj.objList.add(new ProductList{product="Football"});
现在将obj分配给会话
Session["Product"]=obj;
用于检索会话。
ProductList objLst = (ProductList)Session["Product"];