页面刷新检测代码不起作用

时间:2015-03-17 23:06:04

标签: asp.net .net vb.net

我在本文中找到了一篇关于如何检测页面刷新的好文章:Detecting browser 'Refresh' from Code behind in C#,我尝试按照代码在vb.net编写的Web表单应用程序中使用它。

我的问题是,当我使用浏览器刷新按钮刷新页面时,布尔值IsPageRefresh始终保持为false。因此,我试图阻止在页面刷新时执行的代码不断执行。

这是一个例子,如果我的vb.net代码包含文章中的转换代码:

Dim IsPageRefresh As Boolean = False

Protected Sub Account_reset_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        ViewState("ViewStateId") = System.Guid.NewGuid().ToString()
        Session("SessionId") = ViewState("ViewStateId").ToString()
    Else
        If ViewState("ViewStateId").ToString() <> Session("SessionId").ToString() Then
            IsPageRefresh = True
        End If
        Session("SessionId") = System.Guid.NewGuid().ToString()
        ViewState("ViewStateId") = Session("SessionId").ToString()
    End If
End Sub

Protected Sub Account_reset_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete
    If (Not Page.IsPostBack) Then
        If Not IsPageRefresh Then
            If Not String.IsNullOrEmpty(Request("key")) Then
                If Not (Customer.SignInByResetKey(Request("key"))) Then
                    Customer.Messages.Add("Invalid password reset key", MessageType.Error)
                    FormsAuthentication.SignOut()
                    Functions.Redirect(SiteLink.ResetPassword)
                Else
                    ' Do Nothing
                End If
            Else                    
                Functions.Redirect(SiteLink.ResetPassword)
            End If
        Else
            'Do Nothing
        End If
    End If
End Sub

我想请求帮助,以确定我可能犯错误的地方,或者是否有更好的方法。

我看过许多文章,展示了如何在代码中捕获页面刷新,但他们使用PreRender方法,由于如何构建网站,我无法实现该解决方案。

我希望我能得到一些积极的反馈。

非常感谢。

0 个答案:

没有答案
相关问题