0

我正在尝试使用 VB.NET 使用以下代码在 ASP.NET 中访问您的上一页:

Partial Class _Default Inherits Page        
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim previousPage As String = Page.Request.UrlReferrer.ToString
        If (Request.UrlReferrer <> Nothing) Then
            If previousPage.Contains("Login") Then
                Dim tUsername As String = Session("Username")
                lblUsername.Text = "Welcome, " + tUsername
            ElseIf previousPage.Contains("Register") Then
                Dim cUsername As String = Session("CUsername")
                lblUsername.Text = "Welcome, " + cUsername
            Else
                lblUsername.Text = "Welcome, Guest"
            End If
        End If
    End Sub
End Class

我收到此错误:

你调用的对象是空的。

在:

Dim previousPage As String = Page.Request.UrlReferrer.ToString

我想要做的是访问前一页,这样我就可以获得一个会话变量。

4

2 回答 2

0

试试这个代码。

Partial Class _Default
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

            If (Request.UrlReferrer <> Nothing) Then

               Dim previousPage As String = Page.Request.UrlReferrer.ToString

                If previousPage.Contains("Login") Then

                    Dim tUsername As String = Session("Username")

                    lblUsername.Text = "Welcome, " + tUsername

                ElseIf previousPage.Contains("Register") Then

                    Dim cUsername As String = Session("CUsername")

                    lblUsername.Text = "Welcome, " + cUsername
                End If

            Else
                    lblUsername.Text = "Welcome, Guest"

            End If

        End Sub

End Class
于 2012-05-05T15:37:28.907 回答
0

不确定您要做什么,但虽然很容易回答您的具体问题,但您应该退后一步,回顾一下您为什么要这样做。

似乎正在尝试基于某些身份验证来控制流量。如果是这样,请考虑ASP.Net Forms Authentication +/- Login Controls。您可以将此架构“插入”到您现有的身份验证机制中(这意味着您不必根除现有的东西来实现它)。

(如果您仍想重新发明轮子)考虑使用 cookie,而不是在登陆“此”页面之前尝试找出“用户来自哪里” ——这两者都可以变化 x——你的网站拥有的网页越多或者会有,你会有更多的意大利面。

于 2012-05-05T16:41:38.943 回答