Question Comment obtenir l'URL de la page en cours en C # [en double]


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

Quelqu'un peut-il m'aider à obtenir l'URL de la page de travail actuelle de ASP.NET en C #?


559
2018-02-27 06:20


origine


Réponses:


Essaye ça :

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

809
2018-02-27 06:23



Vous devrez parfois obtenir des valeurs différentes de l'URL.

L'exemple ci-dessous montre différentes manières d'extraire différentes parties de l'URL

EXEMPLE: (Exemple d'URL)

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 coller le code ci-dessus et l'exécuter dans l'application web asp.net avec une URL différente.

Je recommande également de lire le routage ASP.Net au cas où vous pourriez utiliser le routage ASP, vous n'avez donc 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


404
2018-05-22 13:46



Juste partager car c'était ma solution grâce à la publication de Canavar.

Si vous avez quelque chose comme ça:

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

ou comme ceci:

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

et vous ne voulez que 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 entraînerait:

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

89
2018-04-26 16:56



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

string url = Request.Url.Host;

retournerait stackoverflow.com si appelé à partir de cette page

Ici se trouve le panne complète


41
2018-02-27 06:27



le request.rawurl donnera le contenu de la page en cours il donne le chemin exact que vous avez requis

utilisation HttpContext.Current.Request.RawUrl


17
2018-01-17 14:31



Si vous voulez obtenir

localhost:2806 

de

http://localhost:2806/Pages/ 

puis utilisez:

HttpContext.Current.Request.Url.Authority

13
2018-05-23 15:00



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

Si vous avez besoin de l'exécuter dans global.asax> Application_Start et vous le mode de l'application est intégré alors vous recevrez l'erreur ci-dessous:

La requête n'est pas disponible dans ce contexte exception dans   Application_Start.

Dans ce cas, vous devez utiliser ceci:

System.Web.HttpRuntime.AppDomainAppVirtualPath

L'espoir aidera les autres ..


10
2017-08-05 11:13



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

Il y a deux façons de le faire si vous avez seulement une valeur de chaîne.

Chemin .NET:

Identique à @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 ex.

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

string host = uri.host
// localhost

Façon Regex:

Obtention de parties d'une URL (Regex)


8
2017-09-19 13:36



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

 Path.GetFileName( Request.Url.AbsolutePath )

using System.IO;


6