如何在页面重新加载后显示 cookie 内容

How to show cookie content after page reload

我的default.aspx表单标签内容是

<asp:Button ID="ButtonSave" runat="server" Text="Save" Height="47px" Width="176px" />
<asp:TextBox ID="TextBoxCookie" runat="server"></asp:TextBox>

我要实现的是,关闭页面重新打开后,Textbox里面填满了我写到textbox里的字符串,然后通过底部保存。 我后面的文字是

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    TextBoxCookie.Text = Request.Cookies("TextCookie").Value
End Sub

Protected Sub ButtonSave_Click(sender As Object, e As EventArgs) Handles ButtonSave.Click
    Dim aCookie As New HttpCookie("TextCookie")
    aCookie.Value = TextBoxCookie.Text.ToString
    aCookie.Expires = DateTime.Now.AddDays(1)
    Response.Cookies.Add(aCookie)
End Sub

但是关闭页面后文本框是空的。谁能告诉我代码有什么问题,因为我不明白。

  1. 如果页面 不是 post,您只想设置 TextBoxCookie 的值。否则,您的页面流是让您输入一个值,单击按钮,然后在 post 返回时,您将用 cookie 的值(可能为空)覆盖您输入的值。然后,ButtonSave_Click 执行并将 cookie 设置为文本框的值(现在是空的并且 不是 您输入的内容)。

  2. 请注意 ButtonSave_ClickPage_Load 之后发生 。请查看 ASP.NET Page Life Cycle.

因此,仅当文本框不是 post 返回时才设置值...类似于

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    If Not Page.IsPostBack Then
        TextBoxCookie.Text = Request.Cookies("TextCookie").Value
    End If
End Sub