2010-01-26 4 views
5

Quando chiamo Request.RawUrl non ricevo il nome di dominio (almeno in fase di sviluppo).Perché request.rawurl non include la parte http: // localhost?

Per esempio, se il mio URL è a livello locale:

http://localhost:2343/some/thing

La chiamata a Request.RawUrl mi sta dando di nuovo:

/some/cosa

ricordo restituisce tutto , questo è il comportamento b/c è dev locale?

Aggiornamento

Sono anche utilizzando URL Re-Writing quindi le cose come Request.Url.AbsoluteUri tornare indietro l'URL interno, non è la ri-scritto URL che ho bisogno di ottenere.

javascript è l'unico modo quindi?

O forse posso usare Request.RawUrl per la parte url e quindi ottenere la parte del nome di dominio in qualche modo? (A volte ha una porta troppo ...)

risposta

1

Vedere quello che si ottiene con Request.Url.

6

Secondo il documentation:

L'URL prima è definita come la parte dell'URL seguito le informazioni sul dominio. Nella stringa URL http://www.contoso.com/articles/recent.aspx, l'URL non elaborato è /articles/recent.aspx. L'URL raw include la stringa di query, se presente.

È possibile utilizzare Request.Url.AbsoluteUri per ottenere il tutto.

+0

Il problema è che sto usando la ri-scrittura dell'URL, quindi forse l'unico modo è quello di ottenere l'url tramite javascript? – user255963

1

Dal documento MSDN su Request.RawUrl:

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

Siete alla ricerca di Request.Url.

1

Questo comportamento è di progettazione. RawUrl restituisce solo la parte dell'URL che segue il nome di dominio, più eventuali parametri di querystring.

Se si desidera l'url completo, utilizzare Request.Url.