文本框在页面刷新时记住其数据

本文关键字:数据 刷新 文本 | 更新日期: 2023-09-27 18:32:29

我的页面上有 2 个文本框和一个按钮。当我单击按钮时,文本框中的文本会通过电子邮件发送。但是,当我刷新页面并且没有内容时,我也会收到一封电子邮件。

protected void Button1_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(TextBox1.Text) && !string.IsNullOrEmpty(TextBox2.Text))
    {
           //email logic
           TextBox1.Text = "";
           TextBox2.Text = "";
    }
    else
    {
    //do nothing
    }
 }

在这里,单击按钮时,我会收到一封电子邮件,但是当我刷新页面时,即使没有数据,它也进入循环并收到一封电子邮件。

我该如何阻止这种情况?

文本框在页面刷新时记住其数据

Page_Load事件中执行以下操作,并将文本框和按钮保持在<asp:UpdatePanel>中。然后,每次刷新页面时,页面都不会要求重新提交。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        TextBox1.Text = string.Empty;
        TextBox2.Text = string.Empty;
    }
}

更新

将控件保留在更新面板中,如下所示

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Send mail" onclick="Button1_Click" />            
</ContentTemplate>
</asp:UpdatePanel> 
您需要

使用 POST> 重定向> GET 模式。这是解释链接