各位好,我想实现这样的一个功能,就是想记录用户浏览商品的记录。我想把用户浏览商品的ID 写到Cookies 里去,如是我做了个这样的测试。
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.Cookies["history"] == null)
            {
                HttpCookie hc = new HttpCookie("history");
                hc.Expires = DateTime.Now.AddDays(7);
                NameValueCollection nv = new NameValueCollection();
                nv.Add(DateTime.Now.ToString(), DBNull.Value.ToString());
                hc.Values.Add(nv);
                Response.Cookies.Add(hc);            }
            else
            {
                HttpCookie cc = Request.Cookies["history"];
                NameValueCollection nv2 = cc.Values;
                nv2.Add(DateTime.Now.ToString(), DBNull.Value.ToString());
                cc.Values.Add(nv2);
                Response.Cookies.Add(cc);
            }
            HttpCookie htk = Request.Cookies["history"];            for (int i = 0; i < htk.Values.AllKeys.Length; i++)
            {
                Response.Write(htk.Values.Keys[i].ToString() + "<br>");
            }        }
        
      
    }
为什么得不到多个KEY(时间)呢?只能得到当前的时间。

解决方案 »

  1.   

    要创建cookie键
    如Response.Cookies["userInfo"]["userName"] = "T";   
      

  2.   

    cookies的属性和方法应该多看看了 呵呵 楼上正解
      

  3.   

    NameValueCollection 里不是包含了键了吗?
      

  4.   

    cookie 的 values 里放的不是键值集合吗?
      

  5.   


    //-----------------------------载入
    if(!IsPostBack)
            {             HttpCookie cookie = Request.Cookies["userinfo1"];
                cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
                for (int i = 0; i < 5; i++)
                {
                    cookie.Values["BB" + i.ToString()] = i.ToString();
                    Response.Cookies.Add(cookie);
                }
               
       }//**************写入
           HttpCookie cookie = new HttpCookie("userinfo1");
            cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
            for (int i = 0; i < 10; i++)
            {
                
                cookie.Values["U" +i.ToString()] = i.ToString();           
                Response.Cookies.Add(cookie);
            }
    //**************---------------读取
            //读取 Cookie 集合
            for (int i = 0; i < Request.Cookies.Count; i++)
            {
                if (Request.Cookies.AllKeys[i] == "userinfo1")
                {                HttpCookie cookies = Request.Cookies["userInfo1"];
                    Response.Write("name=" + cookies.Name + "<br/>");
                    //Response.Write("name=" + cookies.Value + "<br/>");                if (cookies.HasKeys)//是否有子键
                    {
                        System.Collections.Specialized.NameValueCollection NameColl = cookies.Values;
                        for (int j = 0; j < NameColl.Count; j++)
                        {
                            
                            Response.Write("子键名=" + NameColl.AllKeys[j] + "<br/>");
                            Response.Write("子键值=" + NameColl[j] + "<br/>");
                        }                }
                    else
                    {
                        Response.Write("value=" + cookies.Value + "<br/>");
                    }
                }
              
            }
    //***********************删除
    HttpCookie acookie = Request.Cookies["userinfo1"];
            acookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间       
            if (acookie.HasKeys)//是否有子键
            {
                System.Collections.Specialized.NameValueCollection NameColl = acookie.Values; 
                for (int j = 0 ; j < NameColl.Count; j++)
                {                
                    if (NameColl.AllKeys[j] == "U8")
                    {
                        acookie.Values.Remove(NameColl.AllKeys[j]);
                        Response.Cookies.Add(acookie);
                    }               
                }    
            }
    //***************************追加
    HttpCookie cookie = Request.Cookies["userinfo1"];
            cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
            for (int i = 0; i < 5; i++)
            {
                cookie.Values["K" + i.ToString()] = i.ToString();
                Response.Cookies.Add(cookie);
            }
      

  6.   


    //-----------------------------载入
    if(!IsPostBack)
            {             HttpCookie cookie = Request.Cookies["userinfo1"];
                cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
                for (int i = 0; i < 5; i++)
                {
                    cookie.Values["BB" + i.ToString()] = i.ToString();
                    Response.Cookies.Add(cookie);
                }
               
       }//**************写入
           HttpCookie cookie = new HttpCookie("userinfo1");
            cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
            for (int i = 0; i < 10; i++)
            {
                
                cookie.Values["U" +i.ToString()] = i.ToString();           
                Response.Cookies.Add(cookie);
            }
    //**************---------------读取
            //读取 Cookie 集合
            for (int i = 0; i < Request.Cookies.Count; i++)
            {
                if (Request.Cookies.AllKeys[i] == "userinfo1")
                {                HttpCookie cookies = Request.Cookies["userInfo1"];
                    Response.Write("name=" + cookies.Name + "<br/>");
                    //Response.Write("name=" + cookies.Value + "<br/>");                if (cookies.HasKeys)//是否有子键
                    {
                        System.Collections.Specialized.NameValueCollection NameColl = cookies.Values;
                        for (int j = 0; j < NameColl.Count; j++)
                        {
                            
                            Response.Write("子键名=" + NameColl.AllKeys[j] + "<br/>");
                            Response.Write("子键值=" + NameColl[j] + "<br/>");
                        }                }
                    else
                    {
                        Response.Write("value=" + cookies.Value + "<br/>");
                    }
                }
              
            }
    //***********************删除
    HttpCookie acookie = Request.Cookies["userinfo1"];
            acookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间       
            if (acookie.HasKeys)//是否有子键
            {
                System.Collections.Specialized.NameValueCollection NameColl = acookie.Values; 
                for (int j = 0 ; j < NameColl.Count; j++)
                {                
                    if (NameColl.AllKeys[j] == "U8")
                    {
                        acookie.Values.Remove(NameColl.AllKeys[j]);
                        Response.Cookies.Add(acookie);
                    }               
                }    
            }
    //***************************追加
    HttpCookie cookie = Request.Cookies["userinfo1"];
            cookie.Expires = System.DateTime.Now.AddMinutes(20);//设置过期时间
            for (int i = 0; i < 5; i++)
            {
                cookie.Values["K" + i.ToString()] = i.ToString();
                Response.Cookies.Add(cookie);
            }
      

  7.   

    我知道我错哪啦!
    else
                {
                    HttpCookie cc = Request.Cookies["history"];
                    NameValueCollection nv2 = cc.Values;
                    nv2.Add(DateTime.Now.ToString(), DBNull.Value.ToString());
                    cc.Values.Add(nv2);
                    Response.Cookies.Add(cc);
                }没有给cc 设置 Expries 
      

  8.   

    Response.Cookies["userInfo"]["userName"] = "T";  
      

  9.   

    Response.Cookies["userInfo"]["userName"] = "T";