web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL et la chaîne de requête? vb.net

Je suis en train de refacturer un code hérité. L'application n'utilisait pas de chaînes de requête. Le développeur précédent était en train de coder en dur certaines variables que l'application utilise dans d'autres endroits.

Comme cela en utilisant VB.NET

 so.Cpage = "ContractChange.aspx"

Ma question est la suivante: puis-je définir cette valeur par programme et inclure la chaîne de requête actuelle?

Je veux que so.Cpage soit quelque chose comme ContractChange.aspx?d=1&b=2

Puis-je faire cela avec l'objet de requête ou quelque chose? Remarque, je n'ai pas besoin du domaine.

13
Hcabnettek

Essaye ça:

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

Pour obtenir la chaîne de requête actuelle, vous feriez simplement 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. Par conséquent, si vous transmettez des chiffres, vous devez "convertir" ou convertir ces valeurs de chaîne en valeurs numériques (attention toutefois aux exceptions lors de la conversion). 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 s'agit du type System.Collections.Specialized.NameValueCollection et vous pouvez effectuer une itération sur chacune des paires nom/valeur de la manière suivante:

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

L'utilisation de l'un de ces mécanismes (ou de quelque chose de très similaire) devrait vous permettre de construire une variable chaîne contenant l'URL complète (page et chaînes de requête) vers laquelle vous souhaitez naviguer.

22
CraigTP

En VB.Net, vous pouvez le faire avec les éléments suivants.

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

Si vous souhaitez traiter cela en tant qu'entier, vous pouvez procéder comme suit:

Dim id As Integer

If Integer.TryParse(Request.Params("RequestId"), id) Then
   DoProcessingStuff()
End If
7
Dillie-O

essaye ça

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
1
Yustian

Pas sûr de la syntaxe dans VB.NET mais en C #, il vous suffirait de le faire

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

J'espère que cela t'aides.

0
Michael Ciba