4

私はこのような1つのプロパティを作りました:

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() and get SessionStore.Where() が、この Add And Get の実行中にエラーが発生しました

最初にSessionStore.Add(comment); を実行しました。どこかでこのエラーが発生しました

 List<Message> msglist = HttpContext.Current.Session["MyData"] as List<Message>;
    if(msglist.Count>0)

アクセスできませんmsglist

このリストを任意のページから使用して値を追加および取得できるように、誰かが私のプロパティを修正できますか

4

3 に答える 3

2

Seems you forgot to put the SessionStore into the ASP.NET session, e.g:

if(HttpContext.Current.Session["MyData"]==null)
{
    _SessionStore = new List<Message>();
    // the following line is missing
    HttpContext.Current.Session["MyData"] = _SessionStore;
}

BTW: I think the _SessionStore field is not required. This should be enough:

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>;
    }
}

And then, where you want to use the list of messages, you should access it via the SessionStore property, instead of via HttpContext.Current.Session:

List<Message> msglist = NameOfYourClass.SessionStore;
if(msglist.Count>0)
于 2012-11-08T11:58:45.277 に答える
0

セッションに保存しませんでした

get
{
    if(HttpContext.Current.Session["MyData"]==null)
    {
        HttpContext.Current.Session["MyData"] = new List<Message>();
    }

    List<Message> list = HttpContext.Current.Session["MyData"] as List<Message>;

    return list;
}
于 2012-11-08T12:01:57.183 に答える
0

コードの使用

    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"] = value;
            _SessionStore = value;
        }
    }

これにより、SessionStore に設定した値がプライベート バージョンとセッションに保存されます。

于 2012-11-08T12:02:42.143 に答える