2011-02-07 69 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>();