日期:2014-05-17  浏览次数:20459 次

关于Cookie的问题..
代码如下:
protected void Page_Load(object sender, EventArgs e)
    {
            Response.Cookies["lxx"].Value = "lxx1";
            Response.Write(Request.Cookies["lxx"].Value);
            
    }
    protected void Unnamed1_Click(object sender, EventArgs e)
    {
        Response.Cookies["lxx"].Value = "lxx2";
    }

第一次点击按钮输出lxx1,第二次点击才是输出lxx2,试过在按钮的点击事件中刷新页面可以第一次就输出lxx2。  后来终于理解到Cookie是保存在客户端的了..


我的问题是能不能在不刷新页面的情况下第一次点击按钮就输出lxx2??
Cookie 对象

------解决方案--------------------
js 处理cookie
参考http://www.w3school.com.cn/js/js_cookies.asp
------解决方案--------------------
如果是在服务器端进行Cookie的写入,是必须刷新一次。
否则可以用javascript来实现写入Cookie。
------解决方案--------------------

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Cookies["Event"].Value = "Page_Load";
            Response.Write(Response.Cookies["Event"].Value);//页面输出始终输出的是Page_Load
        }

        protected void Btn_Click(object sender, EventArgs e)
        {
            Response.Cookies["Event"].Value = "Btn_Click";
        }

我不太明白你是想做什么.
页面其实每次都是输出的是 Page_Load ,因为你只是在将 Response.Cookies["Event"].Value = "Page_Load";重置后输出到了响应流.
但这并不代表 点击按钮后 Response.Cookies["Event"].Value 还是 Page_Load.
这就牵涉到了 页面生命周期,点击按钮之后是先执行 Page_Load,经过一段事件后再处理控件事件,也就是Btn_Click,那么就是说 实际上 Response.Cookies["Event"].Value值是Btn_Click.
. 在该例当中 页面输出的Cookie值与浏览器接收的Cookie是不等价的.