这个问题似乎已被多次提出,但我找不到能帮助我的答案。
我在母版页文件的代码隐藏中有代码,当下拉控件发生更改时,它会设置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");
}
}
答案 0 :(得分:3)
如果您希望cookie在请求之间存活,则需要使用响应 .Cookies ....将cookie发送到客户端。当下一个请求进入时,cookie将在那里。