Comment obtenir L'URL de la page courante en C# [dupliquer]

cette question a déjà une réponse ici:

est-ce que quelqu'un peut m'aider à obtenir L'URL de la page de travail actuelle de ASP.NET in C#?

571
demandé sur Mark Byers 2009-02-27 09:20:47

9 réponses

essayez ceci:

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
817
répondu Canavar 2009-02-27 13:59:35

vous pouvez parfois avoir besoin d'obtenir des valeurs différentes de L'URL.

l'exemple ci-dessous montre différentes façons d'extraire différentes parties de L'URL

exemple: (URL de L'échantillon)

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

SORTIE

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

vous pouvez copier la pâte au-dessus du code de l'échantillon & mets-le dedans. asp.net application de formulaire web avec URL différente.

je recommande aussi la lecture ASP.Net routage dans le cas où vous pouvez utiliser le routage ASP alors vous n'avez pas besoin d'utiliser L'URL traditionnelle avec la chaîne de requête.

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

411
répondu Learning 2016-05-11 10:55:29

partage Juste que c'était ma solution grâce à Canavar post.

si vous avez quelque chose comme ceci:

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

ou comme ceci:

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

et vous voulez seulement la partie qu'un utilisateur taperait alors cela fonctionnera:

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

ce qui aurait pour résultat:

"http://localhost:1234/"
"https://www.something.com/"
92
répondu Soenhay 2012-04-26 16:56:28

si vous voulez juste la partie entre http:// et la première barre oblique

string url = Request.Url.Host;

reviendrait stackoverflow.com si vous appelez de cette page

voici le ventilation complète

"
42
répondu roman m 2009-02-27 06:27:52

la demande.rawurl will donne le contenu de la page courante il donne le chemin exact que vous avez demandé

utiliser HttpContext.Current.Request.RawUrl

18
répondu R Square 2015-01-08 15:59:46

si vous voulez obtenir

localhost:2806 

de

http://localhost:2806/Pages/ 

ensuite utiliser:

HttpContext.Current.Request.Url.Authority
13
répondu Thomas 2013-01-17 14:31:48

un conseil pour les personnes qui ont besoin du chemin/url dans global.asax fichier;

si vous devez exécuter ceci dans global.asax > Application_Start et votre mode de pool d'applications est intégré alors vous recevrez l'erreur ci-dessous:

La demande

n'est pas disponible dans ce contexte. Application_Start.

Dans ce cas, vous devez utilisez ceci:

du Système.Web.HttpRuntime.AppDomainAppVirtualPath

l'Espoir d'aider les autres..

10
répondu dvdmn 2013-05-23 15:00:46

, Une recherche m'a débarqué à cette page, mais ce n'était pas tout à fait ce que je cherchais. Poster ici au cas où quelqu'un d'autre à la recherche de ce que j'étais atterrit à cette page aussi.

il y a deux façons de le faire si vous n'avez qu'une valeur string.

.NET way:

comme @Canavar, mais vous pouvez instancier un nouvel objet Uri

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

ce qui signifie que vous pouvez utiliser les mêmes méthodes, par exemple

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

string host = uri.host
// localhost

Regex": 151930920"

obtenir des parties D'une URL (Regex)

8
répondu Ben Pearson 2017-05-23 11:55:07

je suppose que c'est assez pour retourner le chemin absolu..

 Path.GetFileName( Request.Url.AbsolutePath )

utilisant le système.IO;

6
répondu Mayank Pathak 2012-12-20 16:36:57