2009-07-07 3 views
13

Je suis en train de refactoriser du code hérité. L'application n'utilisait pas Querystrings. Le développeur précédent codait en dur certaines variables que l'application utilisait ailleurs.Comment puis-je obtenir l'URL et Querystring? vb.net

Comme cela en utilisant VB.NET

so.Cpage = "ContractChange.aspx" 

Ma question est ce que je peux régler cette valeur et programatically comprennent la querystring actuelle?

Je veux so.Cpage être quelque chose comme

Puis-je faire avec l'objet de la demande ou quelque chose? Remarque, je n'ai pas besoin du domaine.

Répondre

8

Essayez ceci:

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

pas sûr de la syntaxe VB.NET, mais en C# vous juste besoin de faire

string id = Request.QueryString.Get ("d");

Espérons que cela aide.

4

Dans VB.Net vous pouvez le faire avec ce qui suit.

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

Si vous voulez traiter cela dans un entier, vous pouvez effectuer les opérations suivantes:

Dim id As Integer 

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

Pour obtenir la chaîne de requête vous simplement faire quelque chose comme ce qui suit:

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

Cela affectera la valeur de la chaîne de requête "d" à la variable de chaîne "query". Notez que toutes les valeurs de chaîne de requête sont des chaînes, donc si vous transmettez des nombres, vous aurez besoin de "cast" ou de convertir ces valeurs de chaînes en nombres (attention aux exceptions lors du casting, cependant). Par exemple:

Dim query as String = Request.QueryString("d") 
Dim iquery as Integer = CType(query, Integer) 

La propriété QueryString de l'objet Request est une collection de paires de clés nom/valeur. Plus précisément, il est de type System.Collections.Specialized.NameValueCollection, et vous pouvez parcourir chacune des paires nom/valeur comme si:

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 

En utilisant l'un de ces mécanismes (ou quelque chose de très similaire) devrait vous permettre de Construire une variable chaîne qui contient l'URL complète (page et querystrings) que vous souhaitez naviguer.

+0

de la question: "... puis-je mettre cette valeur et programatically comprennent la querystring actuelle?". Je reçois ceci à ce qu'il veut ajouter le QueryString CURRENT, pas en construire un nouveau. –

1

essayer cette

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 
Questions connexes