将值添加到多值cookie时遇到问题

时间:2014-04-27 01:37:29

标签: c# asp.net cookies

所以我正在尝试制作一个多值cookie,用于跟踪网站上特定类别的访问次数。
所以我想制作一个多值的cookie,其中一个类别被添加为键,值是访问的次数。
但由于某种原因,它只创建cookie但不添加键值对。

以下是代码:

String categorie = GetCategorie();
if (Request.Cookies["UserInteresse"] == null)
{
    UserInteresse = new HttpCookie("UserInteresse");
    Response.Cookies["UserInteresse"]["Favoriet"] = "Geen";
}
else
{
    UserInteresse = Request.Cookies["UserInteresse"];
}
if (Request.Cookies["UserInteresse"][categorie] == null)
{
    Response.Cookies["UserInteresse"][categorie] = "0";
}
else
{
    Response.Cookies["UserInteresse"][categorie]=
        Convert.ToInt32(Request.Cookies["UserInteresse"][categorie]) + 1.ToString();
}
Response.Cookies.Add(UserInteresse);

因此,此代码首先检查cookie是否存在,如果不存在,它将创建一个值,以便跟踪最多访问哪个类别。
然后它将检查之前是否访问过一个类别,如果不是,它会将其添加到列表中,如果它被访问之前它的数字应该增加一个。
Everthing是用ASP.NET(c#)

编写的

代码确实编译,但是当我检查cookie或打印出值列表时,我什么都没得到

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我自己找到了答案。我找到了其他方法来增加cookie的值,我重写了我的代码,现在它工作得很漂亮。

这是新代码

categorie = GetCategorie();
if (Request.Cookies["UserInteresse"] == null)
{
UserInteresse = new HttpCookie("UserInteresse");
Response.Cookies.Add(UserInteresse);
Response.Cookies["UserInteresse"]["Favoriet"] = "Geen";
}
else
{
UserInteresse = Request.Cookies["UserInteresse"];
}
if (Request.Cookies["UserInteresse"][categorie]==null)
{
UserInteresse.Values.Add(categorie,"0");
}
else
{
int nieuwaantal = Convert.ToInt32(Request.Cookies["UserInteresse"][categorie]) + 1;
UserInteresse.Values.Remove(categorie);
UserInteresse.Values.Add(categorie, nieuwaantal.ToString());

if (Convert.ToInt32(Request.Cookies["UserInteresse"][categorie]) >= 7 &&
(Request.Cookies["UserInteresse"]["Favoriet"].Equals("Geen")||Convert.ToInt32(Request.Cookies["UserInteresse"][categorie]) >
Convert.ToInt32(Request.Cookies["UserInteresse"][Request.Cookies["UserInteresse"]["Favoriet"]])))
{
UserInteresse.Values.Remove("Favoriet");
UserInteresse.Values.Add("Favoriet", categorie); 
}
}
Response.Cookies.Add(UserInteresse);
}