c#cookies没有被写入

时间:2010-09-23 09:21:34

标签: c# asp.net cookies setcookie

在我的内容页面上,我有代码(在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。

1 个答案:

答案 0 :(得分:0)

问题来自最初由Javascript设置的cookie,没有设置path=属性。 Javascript默认为当前文件夹的cookie路径,而ASP.net默认为/

在Javascript set cookie方法中设置path=/解决了这个问题。