【问题标题】:asp.net cookie reading does not functioning (same page)asp.net cookie 读取不起作用(同一页面)
【发布时间】:2016-08-10 12:34:40
【问题描述】:

我有一个带有按钮和文本框的页面。 我期待应该在页面加载时读取以前的 cookie。 只是尝试读/写简单的例子。按钮应将文本框值保存到 cookie 中。并在下一次打开它应该阅读它。但 mycookie 始终为空。代码有什么问题? 任何线索? (谢谢)

    protected void Page_Load(object sender, EventArgs e)
    {


            HttpCookie mycookie = Request.Cookies["info"];

        if(mycookie!=null)
        TextBox1.Text=mycookie["mytext"];

    }

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        HttpCookie mycookie= new HttpCookie("info");
        mycookie.Expires = DateTime.Now.AddDays(3);

        mycookie["mytext"]=TextBox1.Text;


        Response.Cookies.Add(mycookie);
    }

【问题讨论】:

    标签: c# asp.net cookies httpcookie


    【解决方案1】:

    您可能应该使用 Value 属性。试试这个:

        protected void Page_Load(object sender, EventArgs e)
    {
    
    
            HttpCookie mycookie = Request.Cookies["info"];
    
        if(mycookie!=null)
        TextBox1.Text=mycookie.Value;
    
    }
    
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        HttpCookie mycookie= new HttpCookie("info");
        mycookie.Expires = DateTime.Now.AddDays(3);
    
        mycookie.Value=TextBox1.Text;
    
    
        Response.Cookies.Add(mycookie);
    }
    

    【讨论】:

    • 我会试试的。但它不会工作,因为 mycookie 已经为空。当对象为空时,我们无法访问任何属性,因为对象不存在。
    • 在 Page_Load 中,我们正在检查 null。在 LinkBut​​ton1_Click 中,我们正在实例化 mycookie,因此它不为空。
    • 现在我将项目从 Visual Studio 2010 转移到 2013。两个代码都有效。但是这两个代码都不能在 asp.net 2010 上工作,但在 Visual Studio 2013 上工作。很有趣。
    • 有趣的是,这两个代码都在 Visual 2013 上工作。但在 2010 年它不起作用。 mycookie(在 page_load 中)在 VS2010 上始终为空。
    • 我不知道如何告诉我的学生该解决方案。他们在学校实验室使用 vs2010。所以它对他们不起作用。比我传递这个 cookie 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多