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#?
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
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
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/"
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
"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
si vous voulez obtenir
localhost:2806
de
http://localhost:2806/Pages/
ensuite utiliser:
HttpContext.Current.Request.Url.Authority
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 demanden'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..
, 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"
je suppose que c'est assez pour retourner le chemin absolu..
Path.GetFileName( Request.Url.AbsolutePath )
utilisant le système.IO;