2009-07-07 17 views
13

私はいくつかのレガシーコードをリファクタリングしています。アプリはクエリーストリングを使用していませんでした。以前の開発者は、アプリが他の場所で使用するいくつかの変数をハードコーディングしていました。 VB.NETURLとクエリ文字列を取得するにはどうすればよいですか? vb.net

を使用して、このよう

so.Cpage = "ContractChange.aspx" 

私の質問は、私はプログラム的にこの値を設定し、現在のクエリ文字列を含めることができますか?

私はso.Cpage

ような何かになりたい私はリクエストオブジェクトか何かでこれを行うことができますか?ドメイン名は必要ありません。

答えて

8

これを試してみてください:VB.NETでの構文についてはなく、C#であなただけ行う必要があるだろうわからない

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

文字列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"クエリ文字列の値を文字列変数 "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 QueryStringを追加したいのですが、新しいQueryStringを作成しません。 –

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 
関連する問題