2009-07-07 20 views
13

Estoy refacturando algún código heredado. La aplicación no usaba cadenas de querys. El desarrollador anterior fue difícil de codificar algunas variables que la aplicación utiliza en otros lugares.¿Cómo puedo obtener la URL y Querystring? vb.net

gusta esta usando VB.NET

so.Cpage = "ContractChange.aspx" 

Mi pregunta es ¿puedo programáticamente establece este valor e incluyen la cadena de consulta actual?

Quiero so.Cpage a ser algo así como

¿Puedo hacer esto con el objeto de solicitud o algo? Tenga en cuenta que no necesito el dominio.

Respuesta

8

Prueba esto:

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

No está seguro acerca de la sintaxis en VB.NET pero en C# sólo se necesita hacer

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

Espero que esto ayude.

4

En VB.Net puede hacerlo con lo siguiente.

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

Si desea procesar esto en como un entero, puede hacer lo siguiente:

Dim id As Integer 

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

Para obtener la cadena de consulta actual sólo tendría que hacer algo como lo siguiente:

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

Esto asignará el valor de la cadena de consulta "d" a la variable de cadena "query". Tenga en cuenta que todos los valores de las cadenas de consulta son cadenas, por lo que si está pasando números, tendrá que "convertir" o convertir esos valores de cadena en numéricos (sin embargo, tenga cuidado con las excepciones cuando realice la conversión). Por ejemplo:

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

La propiedad de cadena de consulta de la solicitud objeto es una colección de pares de claves de nombre/valor. En concreto, es de tipo System.Collections.Specialized.NameValueCollection, y se puede iterar a través de cada uno de los pares de nombre/valor como tal:

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 

El uso de cualquiera de estos mecanismos (o algo muy similar) debe permitirle construye una variable de cadena que contiene la url completa (página y querystrings) a la que deseas navegar.

+0

partir de la pregunta: "... puedo programáticamente establecer este valor e incluyen la cadena de consulta actual?". Entiendo esto, quiere agregar el QueryString ACTUAL, no construir uno nuevo. –

1

probar esto

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 
Cuestiones relacionadas