我正在重构一些遗留代码。该应用程序未使用查询字符串。之前的开发人员正在对应用程序在其他地方使用的一些变量进行硬编码。
像这样使用 VB.NET
so.Cpage = "ContractChange.aspx"
我的问题是我可以以编程方式设置这个值并包含当前的查询字符串吗?
我想so.Cpage
成为ContractChange.aspx?d=1&b=2
我可以用请求对象或其他东西来做到这一点吗?请注意,我不需要域。
要获取当前查询字符串,您只需执行以下操作:
Dim query as String = Request.QueryString("d")
这会将“d”查询字符串的值分配给字符串变量“query”。请注意,所有查询字符串值都是字符串,因此如果要传递数字,则需要“强制转换”或将这些字符串值转换为数字(但在强制转换时要小心异常)。例如:
Dim query as String = Request.QueryString("d")
Dim iquery as Integer = CType(query, Integer)
Request 对象的 QueryString 属性是名称/值键对的集合。具体来说,它是 System.Collections.Specialized.NameValueCollection 类型,您可以像这样遍历每个名称/值对:
Dim coll As System.Collections.Specialized.NameValueCollection = Request.QueryString
Dim value As String
For Each key As String In coll.AllKeys
value = coll(key)
Next
使用这些机制中的任何一种(或非常类似的机制)都可以让您构造一个字符串变量,其中包含您希望导航到的完整 url(页面和查询字符串)。
试试这个:
so.Cpage = "ContractChange.aspx?" & Request.RawUrl.Split("?")(1)
在 VB.Net 中,您可以执行以下操作。
Dim id As String = Request.Params("RequestId")
如果要将其作为整数处理,可以执行以下操作:
Dim id As Integer
If Integer.TryParse(Request.Params("RequestId"), id) Then
DoProcessingStuff()
End If
试试这个
Dim name As String = System.IO.Path.GetFileName(Request.ServerVariables("SCRIPT_NAME"))
Dim qrystring As String = Request.ServerVariables("QUERY_STRING")
Dim fullname As String = name & "/" & qrystring
不确定中的语法,VB.NET
但C#
你只需要这样做
StringId = Request.QueryString.Get("d");
希望这可以帮助。