使用浏览器后退按钮加载ASP.NET页面

时间:2015-07-21 15:11:21

标签: c# asp.net .net webforms

这里发布了几个类似的问题,但没有一个能够完全解决我的问题。这是(简化)方案:

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运行?

2 个答案:

答案 0 :(得分:4)

尝试把它放在第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);
    }

答案 1 :(得分:0)

安德鲁

会话变量中带标记的小技巧

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

希望帮助你

相关问题