在我的内容页面上,我有代码(在page_load中):
if (Master.pageAction == "remove")
{
int removeProductID = int.Parse(Request.QueryString["ID"]);
int removeOptionID = int.Parse(Request.QueryString["optID"]);
Master.myBasket.removeFromBasket(removeProductID, removeOptionID);
//Response.Redirect("viewBasket.aspx");
}
从篮子中删除的功能定义为:
// Removes item from a basket
public void removeFromBasket(int itemsID, int optionsID)
{
Page myPage = (Page)HttpContext.Current.Handler;
this.setCookieString("");
myPage.Response.Write("done");
}
它叫:
// Sets cookie date
public void setCookieString(string cookiesData)
{
Page myPage = (Page)HttpContext.Current.Handler;
HttpCookie basketCookie = new HttpCookie("basket");
basketCookie["items"] = cookiesData;
basketCookie.Expires = DateTime.Now.AddDays(7d);
myPage.Response.Cookies.Add(basketCookie);
}
我在其他页面上使用setcookiestring函数,它工作正常,但这个功能(从篮子中删除)不是设置cookie!它将“完成”写入页面顶部,因此函数正在执行。
没有警告,没有错误,只是没有更新cookie。
答案 0 :(得分:0)
问题来自最初由Javascript设置的cookie,没有设置path=
属性。 Javascript默认为当前文件夹的cookie路径,而ASP.net默认为/
。
在Javascript set cookie方法中设置path=/
解决了这个问题。