Entwickler-Ecke

ASP.NET und Web - URL der aktuellen Seite als Basis für Redirect verwenden


UGrohne - Di 06.05.08 13:27
Titel: URL der aktuellen Seite als Basis für Redirect verwenden
Hallo,

ich muss zum Redirecten von der aktuellen Seite den URL der aktuellen Seite umbauen, der bereits Parameter beinhaltet. Problem ist, dass ich nicht nur Parameter hinzufügen, sondern auch welche entfernen bzw. ändern muss. Gibt es hierzu im .NET Framework eine Klasse, die mir hierbei zur Seite steht oder muss ich das mittels String-Parsing selbst machen. Bisher bin ich hierzu nicht fündig geworden.

Danke ;)


Th69 - Di 06.05.08 13:54

Mittels der Klasse Uri (Uniform Resource Identifier) kannst du zumindestens schon mal lesend auf die einzelnen Werte zugreifen:

C#-Quelltext
1:
2:
3:
Uri myUri = new Uri (sURL);

string sQuery = myUri.Query;

Nun kannst du mittels String.Split die einzelnen Parameter ermitteln:

C#-Quelltext
1:
string[] params = sQuery.Split('&');                    

Nun kannst du noch die einzelnen Parameter bearbeiten ('param=value').
Zum Bearbeiten der Liste solltest du jedoch besser eine List<string> verwenden (Löschen, Hinzufügen).

Zum Wiederzusammensetzen dann einfach String.Join verwenden.


UGrohne - Di 06.05.08 14:23

OK, genau diese Methode wollte ich eigentlich vermeiden, aber na gut. Dann schreib ich eben selbst eine Klasse dazu ;)

Danke jedenfalls.


Kha - Di 06.05.08 18:47

Bei ASP.Net scheint dafür die interne Klasse HttpValueCollection zuständig zu sein. Also entweder per Reflection aufrufen oder einfach aus Reflector/Debug Sources den Quelltext klauen :zwinker: .