如何获取URL和Querystring? vb.net

时间:2009-07-07 15:02:39

标签: vb.net url request

我正在重构一些遗留代码。该应用程序没有使用查询字符串。以前的开发人员正在编写应用程序在其他地方使用的一些变量。

像这样使用VB.NET

 so.Cpage = "ContractChange.aspx"

我的问题是,我可以以编程方式设置此值并包含当前查询字符串吗?

我希望so.Cpage类似于ContractChange.aspx?d=1&b=2

我可以使用请求对象或其他内容吗?注意,我不需要域名。

5 个答案:

答案 0 :(得分:22)

要获取当前查询字符串,您只需执行以下操作:

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(页面和查询字符串)。

答案 1 :(得分:9)

试试这个:

so.Cpage = "ContractChange.aspx?" & Request.RawUrl.Split("?")(1)

答案 2 :(得分:7)

在VB.Net中,您可以使用以下内容完成此操作。

Dim id As String = Request.Params("RequestId")

如果要以整数形式处理,可以执行以下操作:

Dim id As Integer

If Integer.TryParse(Request.Params("RequestId"), id) Then
   DoProcessingStuff()
End If

答案 3 :(得分:1)

试试这个

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

答案 4 :(得分:0)

不确定VB.NET中的语法,但在C#中你只需要做

string id = Request.QueryString.Get(“d”);

希望这有帮助。

相关问题