it-swarm.it

Come ottenere l'URL della pagina corrente in C #

Qualcuno può aiutarmi a ottenere l'URL della pagina di lavoro corrente di ASP.NET in C #?

607
apekshabs

Prova questo :

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

string Host = HttpContext.Current.Request.Url.Host;
// localhost
851
Canavar

A volte potresti aver bisogno di ottenere valori diversi dall'URL.

L'esempio seguente mostra diversi modi per estrarre parti diverse dell'URL

ESEMPIO: (URL di esempio)

http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

CODE

Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);

OUTPUT

localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

È possibile copiare incolla sopra il codice di esempio ed eseguirlo in un'applicazione di modulo Web asp.net con URL diversi.

Raccomando anche di leggere il routing ASP.Net nel caso in cui si possa usare ASP Routing, quindi non è necessario utilizzare l'URL tradizionale con stringa di query.

http://msdn.Microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx

445
Learning

Semplicemente condividere questa è stata la mia soluzione grazie al post di Canavar.

Se hai qualcosa del genere:

"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"

o in questo modo:

"https://www.something.com/index.html?a=123&b=4567"

e vuoi solo la parte che un utente dovrebbe digitare, allora funzionerà:

String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");

quale risulterebbe in questi:

"http://localhost:1234/"
"https://www.something.com/"
102
Soenhay

se vuoi solo la parte tra http: // e la prima barra

string url = Request.Url.Host;

restituirebbe stackoverflow.com se chiamato da questa pagina

Ecco il completa analisi

45
roman m

il request.rawurl fornisce il contenuto della pagina corrente, fornisce il percorso esatto richiesto

usa HttpContext.Current.Request.RawUrl

19
Randhi Rupesh

Se vuoi ottenere

localhost:2806 

a partire dal

http://localhost:2806/Pages/ 

quindi utilizzare:

HttpContext.Current.Request.Url.Authority
14
Thomas

un consiglio per chi ha bisogno del percorso/url nel file global.asax;

Se è necessario eseguirlo in global.asax> Application_Start e la modalità del pool di applicazioni è integrated , allora si riceverà l'errore seguente:

La richiesta non è disponibile in questa eccezione di contesto in Application_Start.

In tal caso è necessario utilizzare questo:

System.Web.HttpRuntime.AppDomainAppVirtualPath

La speranza aiuterà gli altri ..

12
dvdmn

Una ricerca mi ha colpito a questa pagina, ma non era proprio quello che stavo cercando. Pubblicazione qui nel caso in cui qualcun altro cerchi ciò che ero atterra anche in questa pagina.

Ci sono due modi per farlo se si ha solo un valore di stringa.

Modo .NET:

Come @Canavar, ma puoi creare un'istanza di un nuovo oggetto Uri

String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);

il che significa che puoi utilizzare gli stessi metodi, ad es.

string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string Host = uri.Host
// localhost

Modo Regex:

Ottenere parti di un URL (Regex)

9
Ben Pearson

Suppongo sia sufficiente per restituire il percorso assoluto ..

 Path.GetFileName( Request.Url.AbsolutePath )

using System.IO;

6
Mayank Pathak