将值添加到ASP.NET中的现有cookie

时间:2015-11-03 08:38:01

标签: asp.net cookies

我正面临以下任务:

当用户将网站日志导航到网站上时,请写下 以下信息

当前日期  当前时间  用户在访问期间查看或订购的最多5个产品的名称 由于我没有真正的产品列表网站,我打算在订单屏幕上进行。当用户输入订单数量时,我有一个TextChanged事件。所以我可以获得具有所需信息的单个产品的详细信息,但我不确定如何继续添加它?

这就是我正在做的事情:

foreach (GridViewRow row in this.GridView1.Rows)
    {
     //   string pName1 =      GridView1.DataKeys[test].Values["ProductName"].ToString();
        testCookie.Values.Add("CurrentDate", currentDate);
        testCookie.Values.Add("CurrentTime", currentTime);
        testCookie.Values.Add("ProductName", pName);
        Label lblPartStatus = ((Label)row.Cells[4].FindControl("Label8"));
        double testprice = Convert.ToDouble(lblPartStatus.Text);
        grandTotal = grandTotal + testprice;
    }

此外,如何限制/检查已保存在Cookie中的产品数量,并用最新的产品替换最旧的产品?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

我建议创建Dictionary对象并为其添加键值对,然后将字典存储到Session

Dictionary<string, string> dic = new Dictionary<string, string>();
int i = 0;
foreach (GridViewRow row in this.GridView1.Rows)
    {
        dic.Add("CurrentDate" + i, currentDate);
        dic.Add("CurrentTime" + i, currentTime);
        dic.Add("ProductName" + i, pName);
        i++;
        // your code
    }

Session["dic"] = dic;

用于检索这些值。

Dictionary<string, string> dic = (Dictionary<string, string>)Session["dic"];
int i = 0;
foreach(KeyValuePair<string, string> entry in dic)
{
      string date = entry.Value.ToString();
}