当用户点击浏览器上的后退按钮时,我遇到了一个事件意外触发的问题。以下是步骤。
- 用户点击按钮(触发 btnNewSurvey_Click)
- 浏览器显示弹出窗口
- 用户关闭弹出窗口并从单独的链接导航到第二页。
- 浏览器显示第二页
- 用户点击返回
- btnNewSurvey_Click 再次被触发(这是问题所在)
我想知道为什么会这样。我已经查看了 asp.net 的页面生命周期以及关闭页面的缓存,但我无法做出解释。
让我知道是否需要更多信息。谢谢!
更新:似乎按钮单击事件仅在用户从 chrome 中单击返回时才被触发
aspx
<asp:Button ID="btnNewSurvey" runat="server" Text="New Survey" OnClick="btnNewSurvey_Click" />
aspx.cs
protected void btnNewSurvey_Click(object sender, EventArgs e)
{
rwScreenList.VisibleOnPageLoad = true;
rwScreenList.Visible = true;
ListBox lbox = rwScreenList.ContentContainer.FindControl("lboxScreenSelection") as ListBox;
((Label)rwScreenList.ContentContainer.FindControl("lblScreenError")).Text = "";
lbox.DataSource = DatabaseFactory.GetScreensForProject(ProjectId);
lbox.DataBind();
}
问题是当用户从另一个页面回击时会调用此事件。