C# 从cookie中删除特定值
我有一个饼干“愿望清单”。它包含id的列表。我想从cookie中删除特定id。我正在反序列化cookie,但无法从中删除特定id。我正在编写的代码如下:C# 从cookie中删除特定值,c#,asp.net,C#,Asp.net,我有一个饼干“愿望清单”。它包含id的列表。我想从cookie中删除特定id。我正在反序列化cookie,但无法从中删除特定id。我正在编写的代码如下: public int DeleteFromWishlist(long pid) { List<Int64> ls_p = new List<Int64>(); ls_p = Deserialize<List<Int64>>(Convert.ToString(HttpContext.Curr
public int DeleteFromWishlist(long pid)
{
List<Int64> ls_p = new List<Int64>();
ls_p = Deserialize<List<Int64>>(Convert.ToString(HttpContext.Current.Request.Cookies["wishlist"].Value));
var prd = ls_p;
foreach (var item in prd)
{
if (item == pid)
{
string it = item.ToString();
HttpContext.Current.Response.Cookies["wishlist"].Values.Remove(it);
}
}
}
public int DeleteFromWishlist(长pid)
{
列表ls_p=新列表();
ls_p=反序列化(Convert.ToString(HttpContext.Current.Request.Cookies[“wishlist”].Value));
var prd=ls\u p;
foreach(prd中的var项目)
{
如果(项目==pid)
{
string it=item.ToString();
HttpContext.Current.Response.Cookies[“wishlist”].Values.Remove(它);
}
}
}
现在,上面的代码正在删除wishlist cookie中的所有值
if (Request.Cookies["wishlist"] != null)
{
Response.Cookies["wishlist"].Expires = DateTime.Now.AddDays(-1);
}
要删除特定项目,请尝试下面的代码(只需覆盖)
将其从列表中删除,然后重置cookie我解决了它:
public int DeleteFromWishlist(long pid)
{
int result = 0;
List<Int64> ls_p = new List<Int64>();
HttpCookie mycookie = null;
ls_p = Deserialize<List<Int64>>(Convert.ToString(HttpContext.Current.Request.Cookies["wishlist"].Value));
var prd = ls_p;
{
{
ls_p.Remove(ls_p.FirstOrDefault(p=>p==pid));
string data = SerializeItem<List<Int64>>(prd);
mycookie = HttpContext.Current.Request.Cookies["wishlist"];
mycookie.Value = data;
mycookie.Expires = DateTime.Now.AddMonths(1);
HttpContext.Current.Response.Cookies.Add(mycookie);
result = 1;
}
}
return result;
}
public int DeleteFromWishlist(长pid)
{
int结果=0;
列表ls_p=新列表();
HttpCookie mycokie=null;
ls_p=反序列化(Convert.ToString(HttpContext.Current.Request.Cookies[“wishlist”].Value));
var prd=ls\u p;
{
{
ls_p.Remove(ls_p.FirstOrDefault(p=>p==pid));
字符串数据=序列化项(prd);
mycokie=HttpContext.Current.Request.Cookies[“愿望列表”];
mycookie.Value=数据;
mycookie.Expires=DateTime.Now.AddMonths(1);
HttpContext.Current.Response.Cookies.Add(mycokie);
结果=1;
}
}
返回结果;
}
这将删除整个cookie。我只想从cookie中删除特定值。wishlist cookie包含一个整数数组,我想删除一个特定的整数值。请参阅,我的cookie中的值采用这种形式[3,4],如果我想从中删除4。您的代码正在帮助我从cookie中删除4,但它也将4替换为“=”。因此,愿望列表cookie现在包含[3=],这对我不起作用。如何删除?这就是我想要的
public int DeleteFromWishlist(long pid)
{
int result = 0;
List<Int64> ls_p = new List<Int64>();
HttpCookie mycookie = null;
ls_p = Deserialize<List<Int64>>(Convert.ToString(HttpContext.Current.Request.Cookies["wishlist"].Value));
var prd = ls_p;
{
{
ls_p.Remove(ls_p.FirstOrDefault(p=>p==pid));
string data = SerializeItem<List<Int64>>(prd);
mycookie = HttpContext.Current.Request.Cookies["wishlist"];
mycookie.Value = data;
mycookie.Expires = DateTime.Now.AddMonths(1);
HttpContext.Current.Response.Cookies.Add(mycookie);
result = 1;
}
}
return result;
}