HttpCookie cookie = new HttpCookie("cart");
cookie.Values.Add("productname", contextKey//这个是我传入的值);
cookie.Values.Add("productprice", price//这个也是我传入的值);
cookie.Expires = DateTime.Now.AddSeconds(1200);
HttpContext.Current.Response.AppendCookie(cookie);怎么把这COOKIE遍历出来??????

解决方案 »

  1.   

       遍历cookies的方法
       为了使用Cookies集合更加方便,可使用名称为Haskeys的附加属性。假如访问的Cookies本身也是个集合,即它是一个多值的Cookie,这将返回Ture。使用Haskeys属性,可以遍历完整的Request.Cookies集合,从而获得所有Cookie的列表以及他们的值。
        For Each objItem In Request.Cookies
            If Request.Cookies(objItem).Haskey then
               ''''User anther For Each to Itrate all subkeys
               For Each objItemKey In Request.Cookies(objItem)
                   Response.Writer objItem &"("&objItemKey&")="_
                                & Request.Cookies(objItem).(objItemKey)&"<br>"
               Next
             Else
                ''''Print out the cookie string as normal
                Response.Writer objItem & "="& Request.Cookies(objItem)&"<br>"
             End If
          Next
     
       着非常类似于从Request.Form集合中提取多个值得复杂代码。但是这里可以使用Haskeys属性来判断每个条目是否为一个集合。而Form例子里,必须查询Request.Form(item_name)。Count属性,这是因为Form集合(和所有得除cookie外的其他集合)成员不可能是真正的集合。Asp只是做了“幕后”的工作,得到了每个多条稽核得值。
      

  2.   

    在asp.net中遍曆cookies,session,application
    2008年04月17日 星期四 上午 09:34
        //遍曆cookies
            for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
            {
                Response.Write(HttpContext.Current.Request.Cookies.Keys[i] + ":" +HttpContext.Current.Request.Cookies[i].Value.ToString()+ "<br>");
            }
            //遍曆session
            for (int i = 0; i < HttpContext.Current.Session.Count; i++)
            {
                Response.Write(HttpContext.Current.Session.Keys[i] + ":" + HttpContext.Current.Session[i].ToString() + "<br>");        }        //遍曆application
            for (int i = 0; i < HttpContext.Current.Application.Count; i++)
            {
                Response.Write(HttpContext.Current.Application.Keys[i] + ":" + HttpContext.Current.Application[i].ToString() + "<br>");      
            }//遍历Form
    for (int i = 0; i <Request.Form.Count; i++)
            {
                Response.Write(Request.Form.Keys[i] + ":" + Request.Form[i].ToString() + "<br>");        }
      

  3.   

    我遍历出来后怎么添加到一个stringbuilder对象中,sb.append貌似里面不能用循环的
      

  4.   

    还有cookies.values.add是把值添加进去对吗?我怎么添加的值把原来的替换了啊???
      

  5.   

    HttpCookie c;
    string subKeyName;
    string subKeyValue;
    for(int i = 0; i < Request.Cookies.Count;i++)
    {
        c = Request.Cookies[i];
        if (c.HasKeys)
        {
            for (int j = 0; j < c.Values.Count - 1; j++ )
            {
                subKeyName = Server.HtmlEncode(c.Values.AllKeys[j]);
                subKeyValue = Server.HtmlEncode(c.Values[j]);
                Response.Write("subKeyName = " + subKeyName + ", subKeyValue = " + subKeyValue + "<br />");
            }
        }
        else
            Response.Write(c.Name + " " + c.Value + "<br />");   
    }