Quelqu'un peut-il m'aider à obtenir l'URL de la page de travail actuelle de ASP.NET en C# ?
- Obtenir l'URL de la page ASP.Net en code-behind (5 réponses )
Réponses
Trop de publicités?Vous pouvez parfois avoir besoin d'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&QuerrString2=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.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
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QuerrString2=2
/WebSite1test/Default2.aspx?QueryString1=1&QuerrString2=2
Vous pouvez copier-coller l'exemple de code ci-dessus et l'exécuter dans une application asp.net web form avec une URL différente.
Je vous recommande également de lire ASP.Net Routing. Si vous utilisez ASP Routing, vous n'avez pas besoin d'utiliser une URL traditionnelle avec une chaîne de requête.
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
Je partage simplement cette information, car c'est la solution que j'ai trouvée grâce à l'article de Canavar.
Si vous avez quelque chose comme ça :
"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"
ou comme ça :
"https://www.something.com/index.html?a=123&b=4567"
et que vous ne voulez que la partie qu'un utilisateur pourrait taper, alors cela fonctionnera :
String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
qui se traduirait par ces derniers :
"http://localhost:1234/"
"https://www.something.com/"
si vous voulez juste la partie entre http:// et le premier slash
string url = Request.Url.Host;
renverrait stackoverflow.com s'il était appelé depuis cette page
Voici le dégradation complète