2010-01-26 3 views
5

Wenn ich Request.RawUrl anrufe bekomme ich nicht den Domain-Namen (zumindest in der Entwicklung).Warum enthält request.rawurl nicht den Teil http: // localhost?

Zum Beispiel, wenn meine URL lokal ist:

http://localhost:2343/some/thing

Der Aufruf von Request.RawUrl ist mir etwas zurückzugeben:

/some/Sache

Ich erinnere mich, es kehrt alles zurück , ist dies das Verhalten b/c es ist lokal dev?

aktualisiert

ich auch URL Re-Writing so Dinge wie Request.Url.AbsoluteUri Rückkehr die interne URL zurück, nicht die Wieder geschrieben URL, die ich bekommen müssen verwende.

ist Javascript der einzige Weg dann?

Oder kann ich vielleicht Request.RawUrl für den URL-Teil, und dann nur den Domain-Namen Teil irgendwie bekommen? (Manchmal hat es einen Port auch ...)

Antwort

1

Sehen Sie, was Sie mit Request.Url.

6

Nach den documentation:

Die rohe URL als Teil der URL nach den Domain-Informationen definiert ist. In der URL-Zeichenfolge http://www.contoso.com/articles/recent.aspx lautet die unformatierte URL /articles/recent.aspx. Die unformatierte URL enthält die Abfragezeichenfolge, falls vorhanden.

Sie können Request.Url.AbsoluteUri verwenden, um die gesamte Sache zu bekommen.

+0

Problem ist, ich benutze URL neu schreiben, also ist vielleicht der einzige Weg, um die URL über Javascript zu bekommen? – user255963

1

Aus dem MSDN-Dokument auf Request.RawUrl:

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

Sie suchen Request.Url.

1

Dieses Verhalten ist von Entwurf. RawUrl gibt nur den Teil der URL zurück, der dem Domänennamen folgt, sowie alle Querystring-Parameter.

Wenn Sie die vollständige URL möchten, verwenden Sie Request.Url.