1

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

4

1 回答 1

0

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

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

于 2010-09-23T10:13:57.827 回答