Come ottenere l'URL della pagina corrente in C#




asp.net (6)

Questa domanda ha già una risposta qui:

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


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

CODICE

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);

PRODUZIONE

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

Puoi copiare incolla sopra il codice di esempio ed eseguirlo nell'applicazione del modulo web asp.net con URL diversi.

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

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


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

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/"

Suppongo sia sufficiente per restituire il percorso assoluto ..

 Path.GetFileName( Request.Url.AbsolutePath )

using System.IO;


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

utilizzare HttpContext.Current.Request.RawUrl


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

string url = Request.Url.Host;

restituirebbe .com se chiamato da questa pagina

Ecco la ripartizione completa





asp.net