2012-08-06 14 views
8

Busco el equivalente de esta javascript¿Cómo obtener el origen de la página en la afeitadora?

window.location.origin 

pero del lado del servidor, mientras que la creación de páginas mvc.

Por ejemplo, si usted está aquí http://website.com/123, volvería

http://website.com 

Es importante que tengo el "http: //" parte

+0

Resultó que ya se había pedido ... posible duplicado de [Cómo obtener la URL de la página actual en MVC 3] (http://stackoverflow.com/questions/5304782/how-to-get-current-page-url -in-mvc-3) –

Respuesta

14

Soy un fan de

string url = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, 
              string.Empty); 

Mantiene su HTTP/HTTPS , Puerto (si corresponde) y Nombre de host/IP.

+0

+1: Esta es la mejor respuesta. –

+0

+1: limpio y legible – Manatherin

+0

Eso lo hace, amable señor – odle

0

Creo que en busca de Request.Url o RawUrl .

Uri.Scheme de Request.Url le dará información sobre la diferencia http/https.

+0

Request.Url también incluirá '/ 123'. –

+0

@JohnH, he actualizado la respuesta ... También la respuesta de Manatherin (+1) ya incluye todo. –

+0

Ninguno de estos dará lo que se solicitó. Teniendo en cuenta la siguiente URL 'http: // localhost: 63105/home/index', Request.Url devolverá' http: // localhost: 63105/home/index' y Request.RawUrl devolverá '/ home/index' . Ambas respuestas son inferiores a las de Erik, así que eliminaré la mía. –

1

podría intentar

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority) 

O

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Host) 

Autoridad incluirá el número de puerto

+0

Creo que tendrá un '' 'extra en su Autoridad. –

+0

@ErikPhilips No parece que en mi prueba – Manatherin

+0

oh sí, tienes razón, olvidaste que el puerto está en la url, lo uso tan raramente. –

-1

window.location.origin en javascript devuelve el protocolo, el puerto (si lo hay), el dominio y la extensión de la url actual.

Si desea obtener la misma información de una URL, las respuestas aceptadas se lo proporcionarán.

Si desea el mismo comportamiento, es decir, un trozo de javascript llama al método de su servidor y desea saber de dónde está llamando, puede inspeccionar el HttpRequest.URLReferrer. Sin embargo, esto puede ser falsificado fácilmente y, por lo tanto, no es confiable.

+0

¡Usar 'UrlReferrer' es peligroso! Se puede [falsear/establecer en cualquier cosa] (https://en.wikipedia.org/wiki/Referer_spoofing). Eso abre una gran lata de gusanos si no estás escapando correctamente, etc. (XSS, por ejemplo). Además, cuando acceda a la página que proviene de, digamos, Google.com, su método devolverá google.com, no website.com. Nunca confíes en la entrada del usuario; el referente es exactamente eso. – RobIII

+0

@RobIII Estás en lo cierto.Actualicé mi respuesta para reflejar mi opinión original. –

Cuestiones relacionadas