ruta - Cómo obtener la URL de la página actual en C#
obtener url en asp net (9)
Esta pregunta ya tiene una respuesta aquí:
¿Alguien puede ayudarme a obtener la URL de la página de trabajo actual de ASP.NET en C #?
El request.rawurl proporcionará el contenido de la página actual, proporcionará la ruta exacta que usted solicitó.
utilizar HttpContext.Current.Request.RawUrl
Es posible que a veces necesite obtener diferentes valores de la URL.
El siguiente ejemplo muestra diferentes formas de extraer diferentes partes de la URL
EJEMPLO: (URL de muestra)
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
CÓDIGO
Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);
SALIDA
localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
Puede copiar y pegar el código de ejemplo anterior y ejecutarlo en la aplicación de formulario web de asp.net con una URL diferente.
También recomiendo leer ASP.Net Routing, en caso de que pueda usar ASP Routing, no necesita usar la URL tradicional con la cadena de consulta.
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
Prueba esto :
string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx
string host = HttpContext.Current.Request.Url.Host;
// localhost
Si quieres conseguir
localhost:2806
desde
http://localhost:2806/Pages/
entonces use:
HttpContext.Current.Request.Url.Authority
Si solo quieres la parte entre http: // y la primera barra
string url = Request.Url.Host;
devolvería .com si se llama desde esta página
Aquí está el desglose completo
Solo compartir como esta fue mi solución gracias al post de Canavar.
Si tienes algo como esto:
"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"
o así:
"https://www.something.com/index.html?a=123&b=4567"
y solo quieres la parte que un usuario escribiría, entonces esto funcionará:
String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
lo que daría lugar a estos:
"http://localhost:1234/"
"https://www.something.com/"
Supongo que es suficiente para devolver el camino absoluto ...
Path.GetFileName( Request.Url.AbsolutePath )
utilizando System.IO;
Una búsqueda me consiguió en esta página, pero no era exactamente lo que estaba buscando. Publicando aquí en caso de que alguien más busque lo que estaba en esta página también.
Hay dos formas de hacerlo si solo tiene un valor de cadena.
Forma .NET:
Igual que @Canavar, pero puede crear una instancia de un nuevo objeto Uri
String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);
lo que significa que puede utilizar los mismos métodos, por ejemplo,
string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string host = uri.host
// localhost
Manera Regex:
una sugerencia para las personas que necesitan la ruta / url en el archivo global.asax;
Si necesita ejecutar esto en global.asax> Application_Start y su modo de grupo de aplicaciones está integrado , recibirá el siguiente error:
La solicitud no está disponible en esta excepción de contexto en Application_Start.
En ese caso necesitas usar esto:
System.Web.HttpRuntime.AppDomainAppVirtualPath
La esperanza ayudará a los demás.