2011-11-18 44 views
6

Duplicar posible:
How to get the URL of the current page in C#de cómo obtener la URL actual

Si estoy en una página http://myweb/folder/obtain.aspx?thevalue=3 decir, ¿Cómo puedo determinar si la URL contiene obtain.aspx?thevalue en C# ?. Solo necesito verificar si el usuario llegó a esta página en particular.

PS: Creo que realmente no necesito para comprobar la ?thevalue pero sólo el obtain.aspx

+0

@RichardD Las respuestas allí no explican cómo obtener el nombre de la página/archivo real en el que se encuentra, solo muestran cómo obtener la Url. Según el título, son lo mismo, pero el contenido de la pregunta los hace diferentes. – Nate

Respuesta

9

Prueba esto:

//gets the current url 
string currentUrl = Request.Url.AbsoluteUri; 

//check the url to see if it contains your value 
if (currentUrl.ToLower().Contains("obtain.aspx?thevalue")) 
    //do something 
+1

+1 como a veces los enlaces son SUPERIORES o TÍTULO o minúsculas. – Rippo

+0

¿Qué pasa si tengo '#' en la URL ...... es decir, http: //myweb/folder/obtain.aspx#commentfocus –

0

Request.Url devolverá el Uri exacta que se solicita por parte del usuario.

Si desea comprobar específicamente para thevalue, probablemente mejor en busca de que, en Request.QueryString

1

Request.Url debe contener todo lo necesario. En su caso, se podría usar algo como

if(Request.Url.PathAndQuery.IndexOf("obtain.aspx") >= 0)... 
1

recomiendo el uso de Request.Url. Para obtener el nombre exacto del archivo, puede intentar también usando System.IO.Path

var aspxFile = System.IO.Path.GetFileName(Request.Url.LocalPath); 
var landed = aspxFile.Equals("obtain.aspx", StringComparison.InvariantCultureIgnoreCase); 
if(landed) { // your code } 
1

Esto le dará el nombre exacto del archivo (obtain.aspx) Request.Url.Segments [1]

0

es feo pero puede intentar

if (HttpContext.Current.HttpRequest.Url.AbsolutePath.Contains("/obtain.aspx")) 
// then do something 
+0

Contiene dará un verdadero para "2obtain.aspx" también ... Igual() debería ser utilizado & System.IO.Path.GetFileName (Request.Url.LocalPath); – Kim

+0

De hecho, sería mejor –

Cuestiones relacionadas