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

高手来看下,Cookie初级问题,存个 Response.Cookies["name"].Value = name;关闭浏览器,下次再打开,取不到这个值。
代码很简单,就下面,关闭浏览器下次再运行,cookie里没值。这样我是没办法保存用户名的。请问怎么回事
public partial class CookTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string name;
        if (Response.Cookies["name"] != null && Response.Cookies["name"].Value!=null)
            name = Response.Cookies["name"].Value;
        else{
            name = "Jonh";
            Response.Cookies["name"].Expires.AddDays(30);
            Response.Cookies["name"].Value = name;
        }
        Response.Write(name);
    }
}

------解决方案--------------------
Response.Cookies["name"].Expires.AddDays(30);
这里写的不对
应该是
Response.Cookies["name"].Expires = DateTime.Today.AddDays(30);

另外
获取coockie不应该用Response,应该用Request
 if (Request.Cookies["name"] != null && Request.Cookies["name"].Value!=null)
------解决方案--------------------
 if (Response.Cookies["name"] != null && Response.Cookies["name"].Value!=null)

这里改为Request.Cookies就可以了。