0

我試圖讓你以前在ASP.NET中使用VB.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 

我得到這個錯誤:

Object reference not set to an instance of an object.

在:

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

我想要做的是得到前一頁訪問,所以我可以得到一個會話變量。

+0

那麼,檢查Page.Request.UrlReferrer,如果它不是null,那麼繼續你的代碼? Page.Request.UrlReferrer可能爲null,請檢查文檔。另外,爲什麼不使用HttpContext.Current.User.Name或類似的方式將其保存到Session? –

+0

你是什麼意思?我在前一頁使用它? – Brian

+2

將'Dim previousPage As String = Page.Request.UrlReferrer.ToString' 移入'If(Request.UrlReferrer <> Nothing)Then'塊中。這將停止空引用錯誤。 – Ramesh

回答

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 
0

不確定你正在做什麼,但雖然它很容易回答你的具體問題,但你應該退後一步,並回顧你爲什麼這樣做。

似乎您正在嘗試基於某些身份驗證來控制流。如果是這樣,請考慮ASP.Net Forms Authentication +/-登錄控制。您可以將此架構「插入」您現有的身份驗證機制(這意味着您不必拔除現有的東西來實現它)。

(如果你仍然想推倒重來)考慮餅乾,而不是試圖找出登陸之前「這個」頁「用戶從哪裏傳來」 - 這兩者可以通過X變化 - 您的網站擁有或將擁有的網頁越多,您就會擁有更多意大利麪條。