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

时间:2011-02-07 07:18:34

标签: c# cookies

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

//Declaring the List for image list

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

在上面的代码中,我有一个包含所有Image HREF值的列表,现在我想使用C#在cookie中添加这些值,之后我可以从cookie中删除该项,并将值替换为其他值饼干中的相同项目。

请建议!

2 个答案:

答案 0 :(得分:5)

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

要将其添加到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的大小和数量设置上限。

答案 1 :(得分: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>();