2012-08-06 15 views
8

Ich suche nach dem Äquivalent dieser JavascriptWie bekomme ich den Seitenursprung in Rasierer?

window.location.origin 

aber Server-Seite, während mvc Seiten zu bauen.

Zum Beispiel, wenn Sie hier sind http://website.com/123, es

http://website.com 

Es ist wichtig, zurückkehren würde, dass ich die "http: //" haben Teil

+0

Es stellte sich heraus, dass bereits gefragt wurde ... mögliche Duplikate von [So erhalten Sie aktuelle Seite URL in MVC 3] (http://stackoverflow.com/questions/5304782/how-to-get-current-page-url -in-mvc-3) –

Antwort

14

Ich bin ein Fan von

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

Hält sind Ihre Http/Https , Port (falls zutreffend) und HostName/IP.

+0

+1: Dies ist die beste Antwort. –

+0

+1: Sauber und lesbar – Manatherin

+0

Das tut es, Art Sir – odle

0

Ich glaube, Sie suchen nach Request.Url oder RawUrl .

Uri.Scheme von Request.Url gibt Ihnen Informationen über http/https Unterschied.

+0

Request.Url enthält auch '/ 123'. –

+0

@JohnH, Ich habe die Antwort aktualisiert ... Auch Manatherins Antwort (+1) enthält bereits alle. –

+0

Keine von beiden wird geben, was angefordert wurde. Unter Berücksichtigung der folgenden URL "http: // localhost: 63105/home/index" gibt Request.Url "http: // localhost: 63105/home/index" zurück und Request.RawUrl gibt '/ home/index' zurück . Beide Antworten sind denen von Erik unterlegen, also entferne ich meine. –

1

Sie könnten versuchen,

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

Oder

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

Behörde wird die Portnummer

+0

Ich denke, du wirst ein zusätzliches ':' auf deiner Autorität haben. –

+0

@ErikPhilips Es scheint nicht in meinem Test – Manatherin

+0

oh yeah du hast Recht, vergaß, war der Port auf URL, ich benutze es so selten. –

-1

Die window.location.origin in Javascript gibt das Protokoll, Port (falls vorhanden), Domäne und Erweiterung der aktuellen URL zurück.

Wenn Sie die gleichen Informationen von einer URL erhalten möchten, werden Ihnen die akzeptierten Antworten zur Verfügung gestellt.

Wenn Sie das gleiche Verhalten wollen, dh ein Stück JavaScript ruft Ihre Servermethode auf und Sie möchten wissen, von wo es ruft, können Sie den HttpRequest.URLReferrer überprüfen. Dies kann jedoch leicht gefälscht werden und ist daher nicht zuverlässig.

+0

Verwenden von 'UrlReferrer' ist gefährlich! Es kann [spoofed/auf etwas eingestellt werden] (https://en.wikipedia.org/wiki/Referer_spoofing). Das öffnet eine ganze große Dose Würmer, wenn Sie nicht richtig entkommen usw. (XSS zum Beispiel). Auch wenn ich auf die Seite treffe, die beispielsweise von Google.com stammt, wird Ihre Methode google.com und nicht website.com zurückgeben. Vertraue niemals Benutzereingaben; Der Referrer ist genau das. – RobIII

+0

@RobIII Sie haben Recht.Meine Antwort wurde aktualisiert, um meine ursprüngliche Meinung widerzuspiegeln. –

Verwandte Themen