在a.apx 定义一个cookie对象,设置过期时间是一天后。在b.aspx中输出该cookie变量的过期是间却是:0001-1-1 0:00:00 
请问是为什么? 
其中一个页面的代码是: 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; public partial class Default5 : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
        HttpCookie cookie = new HttpCookie("SearchMemory"); 
        //值存储 
        cookie.Values.Add("areaid", HttpUtility.UrlEncode("0")); 
        Response.AppendCookie(cookie); 
        cookie.Expires = DateTime.Now.AddDays(1); 
        //输出 
        Response.Write(Response.Cookies["SearchMemory"].Expires); 
    } 

另一个页面是: 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; public partial class Default6 : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
      HttpCookie cookie = new HttpCookie("SearchMemory"); 
      Response.Write(cookie.Expires); 
    } } 他们输出的结果不一样 
第一个输出:2008-6-7 10:54:11 
第二个输出:0001-1-1 0:00:00 在线等待 

解决方案 »

  1.   

    另一个页面不应该new了 直接取刚才的cookie
    HttpCookie cookie = new HttpCookie("SearchMemory"); 
      

  2.   

    考虑一下变量全局的问题?我也不知道是不是了,对ASP不是很熟。
      

  3.   

    我把下面的那个页面改成了这样
      protected void Page_Load(object sender, EventArgs e)
        {
           HttpCookie cookie = Request.Cookies["SearchMemory"];
           Response.Write(cookie.Expires);
           Response.Write(Request.Cookies["SearchMemory"].Expires);
        }
    输出的仍然是:0001-1-1 0:00:000001-1-1 0:00:00 是那里的错啊?
      

  4.   

    cookie的Expires是不会传回来的,第1个页面写入的时候, Expire会写入Client端,而不会再Postback回来.所以
    HttpCookie cookie = Request.Cookies["SearchMemory"]; 
    Response.Write(cookie.Expires); //这里是不会有值的.Response.Write(cookie.Value); //这里才会有值.你用HttpWatch或Fiddler查看一下就知道了.如果你想得到Expires的值, 在写入的时候把它也写入Cookie就行了.