ASP.NET页面加载与浏览器返回按钮

本文关键字:浏览器 返回 按钮 加载 NET ASP | 更新日期: 2023-09-27 18:03:44

这里有几个类似的问题,但没有一个能准确地回答我的问题。以下是(简化的(场景:

Page1.aspx:用户登录Page1.aspx,然后单击一个按钮。在postback期间,用户被重定向到Page2.aspx(通过Response.Redirect(。

Page2.aspx在Page2.aspx的page load事件中,会进行一些验证,然后会进一步重定向到Page3.aspx(再次通过Response.Redirect(。

Page3.aspx只需向用户显示一些信息。没问题。

现在,当用户在Page3.aspx上点击浏览器中的后退按钮时,就会出现问题。在这种情况下,我希望Page2.aspx重新加载,以便再次进行验证。然而,Page2.aspx被有效地绕过,Page1.aspx被重新加载(并且只有当我关闭页面的缓存时(。关闭Page2.aspx的缓存并没有什么区别。

所以,我的问题是,当用户单击浏览器中的后退按钮时,有没有办法让Page2.aspx运行?

ASP.NET页面加载与浏览器返回按钮

试着把这个放在第2页的代码后面,我把它放在page_load上面,它似乎让页面在按下后退按钮后激发代码后面。

   protected override void OnInit(EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        Response.Cache.SetExpires(DateTime.MinValue);
        base.OnInit(e);
    }

Andrew

在会话变量中使用标志的小技巧

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        If Session("flag") = 1 Then
            Session("flag") = 0
            Response.Write("<script>window.location.reload();</script>")
        End If
    Else
        Session("flag") = 1
    End If
End Sub
Protected Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
    Response.Redirect("Page3.aspx")
End Sub

希望能帮助您