2011-02-07 71 views
1

如何使用C#在Cookie中添加/删除/替换LIST。如何使用C#在cookies中添加/删除/替换LIST

//Declaring the List for image list 

List<string> imageList = new List<string>(); 
foreach (FeaturedPromo promo in base.FeaturedPromos) 
{ 
    imageList.Add(promo.ImageHref); 
} 

在上面的代码中,我有一个列表,在它所有的图像HREF值,现在我想用C#中的Cookie来添加这些值,之后我就能够预防来自Cookies删除该项目,并同时更换价值与cookie中相同商品的其他价值。

请建议!

回答

5

Cookie不会被删除,它们只会被覆盖或过期(有时会被迫过期)。

要将其添加到cookie,只需创建一个Cookie名称值集合,并将每个项目从列表添加到集合。

例项的列表添加到饼干:

System.Collections.Specialized.NameValueCollection cookiecoll = new System.Collections.Specialized.NameValueCollection(); 
for(int i = 0 ; i < imageList.Length; i++) 
{ 
    cookiecoll.Add("item_" + i,imageList[i]); 
} 

HttpCookie cookielist = new HttpCookie("MyListOfCookies"); 
cookielist.Values.Add(cookiecoll); 
Response.Cookies.Add(cookielist); 

示例要编辑 “ITEM_2”

Response.Cookies["MyListofCookies"].Values["item_3"] = "new value"; 

实例删除Cookie:

Response.Cookies["MyListOfCookies"].Expires = DateTime.Now.AddDays(-1); 

实例删除列表中的单个项目(只是无所覆盖)

Response.Cookies["MyListOfCookies"].Values["item_3"] = String.Empty; 


注意:但请记住,您不能在cookie中添加太多数据..许多浏览器对您可以存储的cookie的大小和数量有上限。

+0

@Thanks谢卡尔,我可以有一些示例代码或链接中,我可以看到如何添加,删除列表中的cookie,然后再我可以改变饼干 – 2011-02-07 07:29:07

+0

值啊只是在一分钟内发布... – 2011-02-07 07:31:08

0

你可以使用

// Add cookie 
HttpContext.Current.Response.Cookies.Add(new HttpCookie("MyCookieBizkit", imageList)); 

// Remove cookie 
HttpContext.Current.Response.Cookies.Remove("MyCookieBizkit"); 

// Edit 
HttpContext.Current.Response.Cookies["MyCookieBizkit"] = imageList; 

// Get 
imageList = HttpContext.Current.Request.Cookies["MyCookieBizkit"] != null ? (List<string>)HttpContext.Current.Request.Cookies["MyCookieBizkit"] : new List<string>();