Вопрос, кажется, был задан много раз, но я не могу найти ответ, который помог мне.
У меня есть код в коде для файла главной страницы, который устанавливает 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");
}
}
Если вы хотите, чтобы файл cookie выдержал между запросами, вам нужно использовать Response.Cookies.... отправить cookie клиенту. Когда появится следующий запрос, cookie будет там.