ASP.NET Request.Cookies.Get («Cookie») возвращает ноль

1

Вопрос, кажется, был задан много раз, но я не могу найти ответ, который помог мне.

У меня есть код в коде для файла главной страницы, который устанавливает cookie при изменении выпадающего элемента управления. Если я прокомментирую строку переадресации, я вижу, что cookie правильно установлен, потому что при создании нового файла cookie и вывода его значения успешно отображается новое значение измененного раскрывающегося списка.

Однако, если я разрешаю переадресацию, код в page_load сообщит, что набор файлов cookie равен нулю. Любая помощь очень ценится!

protected void ThemeSelection_SelectedIndexChanged(object sender, EventArgs e)
{

    HttpCookie themeCookie = new HttpCookie("PreferredTheme");
    themeCookie.Expires = DateTime.Now.AddMonths(3);
    themeCookie.Value = ThemeSelection.SelectedValue;

    Request.Cookies.Add(themeCookie);

    HttpCookie cookieCheck = Request.Cookies.Get("PreferredTheme");
    Response.Write(cookieCheck.Value);

    Response.Redirect(Request.Url.ToString());

}

protected void Page_Load(object sender, EventArgs e)
{

    HttpCookie preferredTheme = Request.Cookies.Get("PreferredTheme");

    if (preferredTheme == null)
    {
        Response.Write("PreferredTheme is null");
    }

}
Теги:
cookies

1 ответ

2
Лучший ответ

Если вы хотите, чтобы файл cookie выдержал между запросами, вам нужно использовать Response.Cookies.... отправить cookie клиенту. Когда появится следующий запрос, cookie будет там.

Когда использовать Request.Cookies через Response.Cookies?

  • 0
    Пришел сюда, чтобы исправить мой вопрос, потому что я осознал свою глупую ошибку и увидел, что вы ответили. Спасибо!
  • 0
    Это было очень полезно, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню