如何使用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中删除该项,并将值替换为其他值饼干中的相同项目。
请建议!
答案 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>();