将列表存储到会话

时间:2009-08-11 12:05:04

标签: c# asp.net list session

是否可以在Asp.net C#中存储列表到会话变量?

6 个答案:

答案 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"];