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

path=この問題は、属性が設定されていない状態でJavascriptによって最初に設定されたCookieが原因で発生しました。Javascriptはデフォルトで現在のフォルダーへのCookieパスを使用しますが、ASP.netはデフォルトで。を使用し/ます。

path=/Javascript set cookieメソッドでを設定すると、この問題が解決しました。

于 2010-09-23T10:13:57.827 に答える