Ich habe eine URL wie diese:
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
Ich möchte davon profitieren http://www.example.com/mypage.aspx
.
Kannst du mir sagen, wie ich es bekommen kann?
Sie können verwenden 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);
Oder Sie können verwenden substring
string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));
BEARBEITEN: Ändern der ersten Lösung, um den Vorschlag von brillyfresh in den Kommentaren widerzuspiegeln.
substring
Methode gibt einen Fehler aus, wenn keine Abfragezeichenfolge vorhanden ist. Verwenden Siestring path = url.Substring(0, url.IndexOf("?") > 0? url.IndexOf("?") : url.Length);
stattdessen.Hier ist eine einfachere Lösung:
Von hier ausgeliehen: Abfragezeichenfolge abschneiden und saubere URL C # ASP.net zurückgeben
quelle
return Request.Url.GetLeftPart(UriPartial.Path);
uri.GetComponent(
ist eine weitere großartige Methode, um Teile eines Uri zu erhalten. Ich wusste bis jetzt nichts über diese beiden!Das ist meine Lösung:
quelle
quelle
RawUrl
die URL vor dem erneuten Schreiben der URL abgerufen wird. Verwenden Sie sie also möglicherweiseAbsoluteUri
?Request.Url.AbsoluteUri.Split('?')[0]
Gute Antwort auch hier Antwortquelle gefunden
quelle
Meine Art:
oder
quelle
Uri.GetLeftPart
. Die neueste Version von NET Core (1.1) sollte diese Methode haben (kann nicht bestätigen, da ichSie können verwenden
Request.Url.AbsolutePath
, um den Seitennamen sowieRequest.Url.Authority
den Hostnamen und den Port abzurufen. Ich glaube nicht, dass es eine eingebaute Immobilie gibt, die Ihnen genau das bietet, was Sie wollen, aber Sie können sie selbst kombinieren.quelle
Split () Variation
Ich möchte diese Variante nur als Referenz hinzufügen. URLs sind oft Zeichenfolgen und daher ist es einfacher, die
Split()
Methode zu verwenden alsUri.GetLeftPart()
. UndSplit()
kann auch dazu gebracht werden, mit relativen, leeren und Nullwerten zu arbeiten, während Uri eine Ausnahme auslöst. Darüber hinaus können URLs auch einen Hash wie/report.pdf#page=10
(der das PDF auf einer bestimmten Seite öffnet) enthalten.Die folgende Methode behandelt alle diese Arten von URLs:
Beispielausgabe:
http: //domain/page.html#page=2 ---> http: //domain/page.html
page.html ---> page.html
quelle
Hier ist eine Erweiterungsmethode unter Verwendung der Antwort von @ Kolman. Es ist geringfügig einfacher, sich daran zu erinnern, Path () zu verwenden als GetLeftPart. Möglicherweise möchten Sie Path to GetPath umbenennen, zumindest bis C # Erweiterungseigenschaften hinzugefügt werden.
Verwendung:
Die Klasse:
quelle
quelle
Nur für URL-Namen !!
quelle
Lösung für Silverlight:
quelle
Ich habe eine einfache Erweiterung erstellt, da einige der anderen Antworten null Ausnahmen auslösten, wenn es zunächst keine gab
QueryString
:Verwendung:
quelle
System.Uri.GetComponents
, nur angegebene Komponenten, die Sie möchten.Ausgabe:
quelle
Ein einfaches Beispiel wäre die Verwendung von Teilzeichenfolgen wie:
quelle
quelle
Versuche dies:
Von hier: http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye erhalten Sie Folgendes: mypage.aspx
quelle
quelle