我先用以下代码写入了Cookies
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Response.Cookies["pro"].Value = "第一次运行";
Response.Cookies["pro"].Expires = DateTime.MaxValue;
}
Response.Write(Request.Cookies["pro"].Value);
}
然后F5运行,显示:第一次运行
关闭页面后,我把“第一次运行”改成“第二次”,然后F5,可这个时候页面还是显示“第一次运行”
刷新后才会显示更改后的“第二次”这个是为什么啊,为什么非要刷新才更改呢
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Response.Cookies["pro"].Value = "第一次运行";
Response.Cookies["pro"].Expires = DateTime.MaxValue;
}
Response.Write(Request.Cookies["pro"].Value);
}
然后F5运行,显示:第一次运行
关闭页面后,我把“第一次运行”改成“第二次”,然后F5,可这个时候页面还是显示“第一次运行”
刷新后才会显示更改后的“第二次”这个是为什么啊,为什么非要刷新才更改呢
后加Response.Cookies["pro"].Expires = DateTime.MinValue;
Response.Write(Request.Cookies["pro"].Value); 这句我不明白啊
怎么把接受的值有重新写上去呢,我要更改里面的内容啊
{
if (!Page.IsPostBack)
{
Response.Cookies["pro"].Value = "第一次运行";
Response.Cookies["pro"].Expires = DateTime.MaxValue;
}
Response.Write(Request.Cookies["pro"].Value);
Response.Cookies["pro"].Expires = DateTime.MinValue;
}
就可以了啊
你用了这个时间机制,没有超过时间,当然作废了。得作废 这个时间,后才可以更新。
===========================
执行if (!Page.IsPostBack)里的代码关闭页面后,我把“第一次运行”改成“第二次”,然后F5,可这个时候页面还是显示“第一次运行”
===============================
执行if (!Page.IsPostBack)里的代码,准备写cookie到客户端,但是,这个时候客户端还没有改,
Web服务器与客户端并不是交互式的,必须等到页面到客户端浏览器呈现才能写到客户端,也就是说你现在
Request.Cookies["pro"].Value还是得到刚才的值,因为客户只发了一次请求,而你的响应还没写到,
怎么能读到新值呢?
刷新后才会显示更改后的“第二次”
==========
这个不说了
{
string value = string.Empty;//这个value应该是因为某种原因可能有也可能没有的 if(!IsPostBack)
{
value = "第四次运行";
Response.Cookies["pro"].Value = value;
Response.Cookies["pro"].Expires = DateTime.MaxValue;
} if (!string.IsNullOrEmpty(value))
{
Response.Write(value);
}
else
{
Response.Write(Request.Cookies["pro"].Value);
}
}