我正在使用ASP.net 4.0 VB:)
我正在使用会话变量将用户输入的代码添加到每个页面的网址中。我可以将代码显示在我的文本框所在的页面末尾,但是我应该添加到每个页面以确保会话保持在人们在会话期间访问的每个URL的末尾?这是用户输入其用户代码的页面中的代码。
Protected Sub IBTextBoxButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles IBTextBoxButton.Click
Session("IB") = IBTextBox.Text
Dim IB As String = Session("IB")
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ProductID.Value = Request.QueryString("id")
If Session("IB") Is Nothing Then
tab4.Visible = "False"
Else
tab4.Visible = "True"
End If
End Sub
这是我在其他一个页面的页面加载中所拥有的。我还要添加什么来确保将变量添加到该页面的URL中?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim IB As String
IB = Session("IB")
End Sub
答案 0 :(得分:1)
string url = Request.Url.ToString();
string newUrl = url + url.Contains("?") ? "&" : "?" + "ib=" + Server.UrlEncode(IBTextBox.Text);
Response.Redirect(newUrl);
return;
答案 1 :(得分:1)
我可能会使用的方法是创建一个所有页面都可以继承的基页类。然后基页将继承System.Web.UI.Page。
在基页类中,为IB创建属性并处理页面加载事件。
在那种情况下,检查QueryString中是否包含IB参数。如果是,请将该属性设置为参数中的值。
Private _IB As String
Public Property IB() As String
Get
Return _IB
End Get
Set(ByVal value As String)
_IB = value
End Set
End Property
Public Function GetIB(ByVal url As String) As String
If Not(_IB = String.Empty) Then
If (url.Contains("?")) Then
Return "&IB=" & _IB
Else
Return url & "?IB=" & _IB
End If
Else
Return url
End If
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not (String.IsNullOrEmpty(Request.QueryString("IB"))) Then
_IB = Request.QueryString("IB")
End If
End Sub
最后在您的标记中,您需要在所有链接的末尾添加以下内容:
<a href="<% =GetIB("nextpage.aspx") %>">next page</a>
答案 2 :(得分:0)
我将此代码放入母版页以确保每个页面都知道会话是否在那里。感谢所有人的帮助!
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
If Session("IB") Is Nothing Then
IBText.Visible = True
IBTextBox.Visible = True
IBTextBoxButton.Visible = True
Else
IBText.Visible = False
IBTextBox.Visible = False
IBTextBoxButton.Visible = False
lblIB.Visible = True
lblIB.Text = "Welcome, " + Session("First_Name") + " " + Session("Last_Name")
End If
End Sub