c # куки не пишутся - PullRequest
       21

c # куки не пишутся

1 голос
/ 23 сентября 2010

На моей странице контента у меня есть код (в 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! Он пишет "done" в верхней части страницы, поэтому функции выполняются.

Нет предупреждений, нет ошибок, просто файл cookie не обновляется.

1 Ответ

0 голосов
/ 23 сентября 2010

Проблема возникла из-за того, что cookie изначально устанавливался Javascript без атрибута path=.Javascript по умолчанию использует путь к файлу cookie для текущей папки, в то время как ASP.net по умолчанию равен /.

. Установка path=/ в методе cookie набора Javascript решает эту проблему.

...