Hca*_*tek 14 vb.net url request
我正在重构一些遗留代码.该应用程序没有使用查询字符串.之前的开发人员正在硬编码应用程序在其他地方使用的一些变量.
像这样使用VB.NET
so.Cpage = "ContractChange.aspx"
Run Code Online (Sandbox Code Playgroud)
我的问题是我可以以编程方式设置此值并包含当前的查询字符串吗?
我想so.Cpage成为像ContractChange.aspx?d=1&b=2
我可以使用请求对象或其他东西吗?注意,我不需要域名.
Cra*_*gTP 23
要获取当前查询字符串,您只需执行以下操作:
Dim query as String = Request.QueryString("d")
Run Code Online (Sandbox Code Playgroud)
这会将"d"查询字符串的值赋给字符串变量"query".请注意,所有查询字符串值都是字符串,因此如果您传递数字,则需要"转换"或将这些字符串值转换为数字(但在投射时要小心例外).例如:
Dim query as String = Request.QueryString("d")
Dim iquery as Integer = CType(query, Integer)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
使用这些机制中的任何一种(或类似的东西)应该使您能够构造一个字符串变量,其中包含您希望导航到的完整URL(页面和查询字符串).
试试这个:
so.Cpage = "ContractChange.aspx?" & Request.RawUrl.Split("?")(1)
Run Code Online (Sandbox Code Playgroud)
在VB.Net中,您可以使用以下内容执行此操作.
Dim id As String = Request.Params("RequestId")
Run Code Online (Sandbox Code Playgroud)
如果要以整数形式处理它,可以执行以下操作:
Dim id As Integer
If Integer.TryParse(Request.Params("RequestId"), id) Then
DoProcessingStuff()
End If
Run Code Online (Sandbox Code Playgroud)