2010-01-26 21 views
5

Cuando llamo Request.RawUrl no obtengo el nombre de dominio (al menos en desarrollo).¿Por qué request.rawurl no incluye la parte http: // localhost?

Por ejemplo, si mi URL es localmente:

http://localhost:2343/some/thing

La llamada a Request.RawUrl me está dando la espalda:

/some/cosa

lo recuerdo todo vuelve , ¿es este el comportamiento b/c es un desarrollador local?

actualización

También estoy usando Url Re-escritura así que cosas como Request.Url.AbsoluteUri vuelta detrás la dirección URL interna, no la re-escrito url que necesito para llegar.

es javascript de la única manera, entonces?

O tal vez puedo usar Request.RawUrl para la parte de la url, y luego simplemente obtener la parte del nombre de dominio de alguna manera? (A veces tiene un puerto también ...)

Respuesta

1

Vea lo que se obtiene con Request.Url.

6

Según la documentation:

El URL en bruto se define como la parte de la URL después de la información de dominio. En la cadena de URL http://www.contoso.com/articles/recent.aspx, la URL sin formato es /articles/recent.aspx. La URL sin formato incluye la cadena de consulta, si está presente.

Puede usar Request.Url.AbsoluteUri para obtener todo.

+0

Problema es que estoy usando la reescritura de URL, ¿así que tal vez la única forma es obtener la URL a través de javascript? – user255963

1

Del documento MSDN en Request.RawUrl:

The raw URL is defined as the part of the URL following the domain information.

Usted está buscando Request.Url.

1

Ese comportamiento es por diseño. RawUrl solo devuelve la parte de la url que sigue al nombre de dominio, más cualquier parámetro querystring.

Si desea la URL completa, use Request.Url.

Cuestiones relacionadas