我做了这样一个属性:
public static List<Message> _SessionStore;
public static List<Message> SessionStore
{
get
{
if(HttpContext.Current.Session["MyData"]==null)
{
_SessionStore = new List<Message>();
}
return _SessionStore;
}
set { HttpContext.Current.Session["MyData"] = _SessionStore; }
}
我想添加值SessionStore.Add()并获取SessionStore.Where()
但是我在做这个Add And Get时遇到了错误
首先我做了SessionStore.Add(评论);某处我得到了这个错误
List<Message> msglist = HttpContext.Current.Session["MyData"] as List<Message>;
if(msglist.Count>0)
我无法访问msglist
任何人都可以修改我的财产,我可以从任何页面使用此列表来添加和获取值
最佳答案 好像你忘了把SessionStore放到ASP.NET会话中,例如:
if(HttpContext.Current.Session["MyData"]==null)
{
_SessionStore = new List<Message>();
// the following line is missing
HttpContext.Current.Session["MyData"] = _SessionStore;
}
顺便说一句:我认为_SessionStore字段不是必需的.这应该足够了:
public static List<Message> SessionStore
{
get
{
if(HttpContext.Current.Session["MyData"]==null)
{
HttpContext.Current.Session["MyData"] = new List<Message>();
}
return HttpContext.Current.Session["MyData"] as List<Message>;
}
}
然后,在您要使用消息列表的位置,您应该通过SessionStore属性而不是通过HttpContext.Current.Session访问它:
List<Message> msglist = NameOfYourClass.SessionStore;
if(msglist.Count>0)