1
我的cookie似乎確實創建了它自己,它確實存儲了值,但只存儲了最後一個值,因此基本上它總是保存1個項目,而當我嘗試添加另一個項目時,它只是替換1個項目。 我的代碼如下,任何想法表示讚賞。多值餅乾,不是多值?
if (Request.Cookies["CartData"] == null)
{
HttpCookie NewCookie = new HttpCookie("CartData");
Response.Cookies.Add(NewCookie);
}
/* Process Queries */
int Qty;
if (Request.QueryString["Action"] == "AddToCart")
{
string ProductID = Request.QueryString["ProductID"];
string ProductCategory = Request.QueryString["Category"];
/* Check if Quantity entered is a valid number, if not set to 1 */
if (!int.TryParse(Request.QueryString["Qty"], out Qty))
{
Qty = 1;
}
/* Check if the item already exists in Cart */
if (Request.Cookies["CartData"][ProductID + "_" + ProductCategory] != null)
{
int tempQty;
tempQty = int.Parse(Request.Cookies["CartData"][ProductID + "," + ProductCategory]);
tempQty += Qty;
Response.Cookies["CartData"][ProductID + "_" + ProductCategory] = tempQty.ToString();
}
else
{
Response.Cookies["CartData"][ProductID + "_" + ProductCategory] = Qty.ToString();
}
Response.Cookies["CartData"].Expires = DateTime.Now.AddDays(1);
}
非常感謝Olaf,雖然我的應用程序似乎仍然持有一個項目,但確實有幫助。但是我注意到如果我繼續添加相同的物品,數量會增加!它只有當我添加另一個項目它重置,是否可以是因爲每次都重寫cookie並且不能更新? PS:我知道如何在會話中做到這一點,我只是想在我去寫ASP.NET認證之前練習我的cookie技巧。 :D – RealityDysfunction 2013-04-29 17:35:16
不,他們不應該被改寫。我看不出爲什麼發生。請嘗試以下操作:使用Cookie [ProductID +「_」+ ProductCategory]而不是Cookie [「CartData」] [ProductID +「_」+ ProductCategory]。然後你得到多維數組,並且更容易檢查是否有其他錯誤。 – Olaf 2013-04-30 12:08:08