繁体   English   中英

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

[英]ASP.NET Page loading with browser back button

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

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

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

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

现在,当用户使用Page3.aspx并在其浏览器中单击“后退”按钮时,就会出现问题。 在这种情况下,我希望重新加载Page2.aspx,因此将再次执行验证。 但是,有效地绕过了Page2.aspx,并且重新加载了Page1.aspx(并且仅当我关闭该页面的缓存时)。 关闭Page2.aspx的缓存没有什么区别。

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

尝试将其放置在第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);
    }

安德鲁

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

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

希望对你有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM