URL in C # aufgeteilt?

8

Ich habe eine URL wie example.com/page?a=1&ret=/user/page2 .

Ich habe string.split ('/') verwendet, um die Pfade herauszufinden, aber in diesem Fall ist es nicht sehr nützlich. Wie spalte ich die URL, damit ich den Seitenpfad bekommen kann?

    
jdphenix 22.06.2009, 23:30
quelle

9 Antworten

25

Wenn Sie ein System.Uri-Objekt aus Ihrer Zeichenfolge erstellen, verfügt es über mehrere Eigenschaften für verschiedene Teile des Pfads:

%Vor%     
dahlbyk 22.06.2009, 23:35
quelle
5

Angenommen, Sie meinen, Sie möchten das Bit "page2" erhalten:

%Vor%

Dann musst du den Rest aufteilen.

Bearbeiten: Nun, Sie könnten System.IO.Path.GetFileNameWithoutExtension (Seite) verwenden, um "page2" zurückzugeben, aber ich bin mir nicht sicher, ob es sich richtig anfühlt.

System.IO.Path.GetFileNameWithoutExtension("example.com/page?a=1&ret=/user/page2") gibt auch "page2" zurück.

    
Richard Hein 22.06.2009 23:57
quelle
4

Das Request.Url (Uri) -Objekt hat viele nützliche Eigenschaften in Bezug auf den Pfad. Es kann Ihnen den gesamten QueryString geben, um von der vollen URL abzuheben, wenn Sie das wollen?

Sie können auch einen Server.MapPath auf der Seite selbst ausführen und dann das FileInfo-Objekt verwenden, um verschiedene Teile der Datei selbst anzuzeigen.

    
Robin Day 22.06.2009 23:35
quelle
3

Sie könnten es in ein URI -Objekt laden und holen die Eigenschaft Uri.AbsolutePath .

    
heavyd 22.06.2009 23:35
quelle
2
___ answer1029988 ___

Angenommen, Sie meinen, Sie möchten das Bit "page2" erhalten:

%Vor%

Dann musst du den Rest aufteilen.

Bearbeiten: Nun, Sie könnten System.IO.Path.GetFileNameWithoutExtension (Seite) verwenden, um "page2" zurückzugeben, aber ich bin mir nicht sicher, ob es sich richtig anfühlt.

%code% gibt auch "page2" zurück.

    
___ qstnhdr ___ URL in C # aufgeteilt? ___ answer1029915 ___

Das Request.Url (Uri) -Objekt hat viele nützliche Eigenschaften in Bezug auf den Pfad. Es kann Ihnen den gesamten QueryString geben, um von der vollen URL abzuheben, wenn Sie das wollen?

Sie können auch einen Server.MapPath auf der Seite selbst ausführen und dann das FileInfo-Objekt verwenden, um verschiedene Teile der Datei selbst anzuzeigen.

    
___ qstntxt ___

Ich habe eine URL wie %code% .

Ich habe string.split ('/') verwendet, um die Pfade herauszufinden, aber in diesem Fall ist es nicht sehr nützlich. Wie spalte ich die URL, damit ich den Seitenpfad bekommen kann?

    
___ answer1029916 ___

Sie könnten es in ein URI -Objekt laden und holen die Eigenschaft Uri.AbsolutePath .

    
___ antwort1030055 ___

Ist das ein ASP.NET-Projekt? In Ihrer HttpHandler / Page können Sie einfach das Request-Objekt verwenden:

%Vor%

Wenn Sie keinen HttpContext haben, gibt System.Uri Ihnen etwas Ähnliches:

%Vor%     
___ answer1029922 ___

Überprüfen Sie die System.Uri-Klasse. Es wird deine URL in Fragmente zerlegen.

    
___ answer1029933 ___

Haben Sie darüber nachgedacht, den UriBuilder zu verwenden? Siehe über Frage 479799

Verwenden Sie zuerst die Eigenschaft .Path und teilen Sie sie dann auf.

    
___ answer1030000 ___

Sie könnten auch die Verwendung der Routing-API in ASP.net 2.0 in Betracht ziehen, mit der Sie Ihre URL-Routen genau steuern können

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer1029948 ___

Dies scheint ein guter Fall zu sein, um %code% zu verwenden:

%Vor%     
___ answer1029918 ___

Wenn Sie ein System.Uri-Objekt aus Ihrer Zeichenfolge erstellen, verfügt es über mehrere Eigenschaften für verschiedene Teile des Pfads:

%Vor%     
___ tag123aspnet ___ ASP.NET ist ein Framework für die Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___
Jeff Meatball Yang 23.06.2009 00:24
quelle
0

Überprüfen Sie die System.Uri-Klasse. Es wird deine URL in Fragmente zerlegen.

    
Sergey 22.06.2009 23:36
quelle
0

Haben Sie darüber nachgedacht, den UriBuilder zu verwenden? Siehe über Frage 479799

Verwenden Sie zuerst die Eigenschaft .Path und teilen Sie sie dann auf.

    
bytebender 22.06.2009 23:40
quelle
0

Sie könnten auch die Verwendung der Routing-API in ASP.net 2.0 in Betracht ziehen, mit der Sie Ihre URL-Routen genau steuern können

    
Rony 23.06.2009 00:02
quelle
0

Dies scheint ein guter Fall zu sein, um System.Uri zu verwenden:

%Vor%     
Tyler Bischel 22.06.2009 23:43
quelle

Tags und Links