Obtener URL de la página ASP.Net en código subyacente

Tengo una página ASP.Net que se alojará en un par de servidores diferentes, y quiero obtener la URL de la página (o incluso mejor: el sitio donde está alojada la página) como una cadena para usar en el código subyacente. . ¿Algunas ideas?

Utilizar esta:

Request.Url.AbsoluteUri 

Eso te llevará a la ruta completa (incluido http: // … )

Si solo desea que el esquema y la autoridad formen parte de la solicitud (protocolo, host y puerto), utilice

 Request.Url.GetLeftPart(UriPartial.Authority) 

estoy usando

 Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/") 

Yo uso esto en mi código en una clase personalizada. Es muy útil para enviar correos electrónicos como no-reply@example.com “no-reply @” + BaseSiteUrl Funciona bien en cualquier sitio.

 // get a sites base urll ex: example.com public static string BaseSiteUrl { get { HttpContext context = HttpContext.Current; string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/'); return baseUrl; } } 

Si desea usarlo en codebehind, deshágase del contexto.

¿Quieres el nombre del servidor? O el nombre de host?

Request.Url.Host ala Stephen

Dns.GetHostName – Nombre del servidor

Request.Url tendrá acceso a la mayoría de todo lo que necesitará saber sobre la página solicitada.

 Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue"; 

eso te dará el camino completo a la página en la que estás sentado. Añadí en la cadena de consulta.

Estoy enfrentando el mismo problema y hasta ahora he encontrado:

 new Uri(Request.Url,Request.ApplicationPath) 

o

 Request.Url.GetLeftPart(UriPartial.Authority)+Request.ApplicationPath 

Request.Url.Host

Usando un archivo js puede capturar lo siguiente, que también puede usarse en el código subyacente:

  

Si desea incluir una cadena única al final, similar a example.com?id=99999, use la siguiente

 Dim rawUrl As String = Request.RawUrl.ToString()