J'ai une URL comme celle-ci :
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
Je veux obtenir http://www.example.com/mypage.aspx
d'elle.
Pouvez-vous me dire comment je peux l'obtenir ?
J'ai une URL comme celle-ci :
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
Je veux obtenir http://www.example.com/mypage.aspx
d'elle.
Pouvez-vous me dire comment je peux l'obtenir ?
Voici une solution plus simple :
var uri = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = uri.GetLeftPart(UriPartial.Path);
Emprunté d'ici : Tronquer la chaîne de requête et renvoyer une URL propre C# ASP.net
Vous pouvez utiliser System.Uri
Uri url = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme,
Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);
Ou vous pouvez utiliser substring
string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));
EDIT : Modification de la première solution pour refléter la suggestion de brillyfresh dans les commentaires.
Url.AbsolutePath ne renvoie que la partie chemin de l'URL (/mypage.aspx) ; ajoutez url.Scheme (http) + Uri.SchemeDelimiter (://) + url.Authority (www.somesite.com) pour obtenir l'URL complète souhaitée.
La méthode Uri.GetLeftPart est plus simple comme mentionné stackoverflow.com/questions/1188096/
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.