2009-07-07 55 views
13

我正在重构一些遗留代码。该应用程序没有使用querystrings。之前的开发人员对应用程序在其他地方使用的一些变量进行了硬编码。如何获取URL和Querystring? vb.net

像这样使用VB.NET

so.Cpage = "ContractChange.aspx" 

我的问题是我可以编程设置这个值,包括当前的查询字符串?

我想so.Cpage是像

我能做到这一点与请求对象或东西吗?请注意,我不需要域名。

回答

8

试试这个:

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

不知道关于VB.NET中的语法,但在C#中你只需要做

字符串ID = Request.QueryString.Get( “d”);

希望这会有所帮助。

4

在VB.Net中,您可以通过以下操作完成。

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

如果你想在处理此为整数,你可以做到以下几点:

Dim id As Integer 

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

为了得到当前的查询字符串,你只会做类似如下:

Dim query as String = Request.QueryString("d") 

这会将“d”querystring的值赋给字符串变量“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(页面和查询字符串)。

+0

从这样一个问题:“......我可以编程设置这个值,包括当前的查询字符串?”。我得到这个,他想追加CURRENT查询字符串,而不是构建一个新的。 – 2009-07-07 15:39:55

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