URL-Querystring - Suchen, ersetzen, hinzufügen, aktualisieren Werte?
Geerbt haben wir einige C# - code als Teil eines Projekts von einem anderen Unternehmen, das keine URL-Umleitungen, ändert die vorhandenen query-string, ändern Werte der Elemente, das hinzufügen neuer params, etc. benötigt. Das Problem ist jedoch, dass der code fehlerhaft ist am besten, und endet wiederholende Elemente in der Abfrage-string, anstatt Sie zu aktualisieren, richtig. Der code funktioniert auf den ersten pass aber auf zusätzliche Aufrufe der Duplizierung Probleme deutlich geworden.
Ex: MyPage.aspx?startdate=08/22/09&startdate=09/22/09
Stattdessen duplizieren Sie das Element muss es sein, entweder anhand des neuen Wertes aktualisiert, falls es bereits vorhanden ist, oder ergänzt werden, wenn nicht bereits vorhanden.
Gibt es eine C# - Klasse oder eine Reihe von Funktionen zur Bearbeitung von query-strings, so dass eine einfache Möglichkeit für den Zugriff auf und aktualisieren/hinzufügen von Parametern, wird rund um diese Themen statt der blind-add-Ansatz, scheint in Benutzung zu sein jetzt mit dem code? Dieser muss in der Lage sein, um mehrere Parameter, die möglicherweise oder möglicherweise nicht vorhanden ist zu allen Zeiten und Hinzugefügt und aktualisiert werden auf nachfolgende Aufrufe.
Würden wir früher vorhandene verwenden die Logik als neu etwas, wenn möglich, um diese schnell gelöst und in eine semi-Norm Weg für die zukünftige Wartbarkeit und Wiederverwendung.
InformationsquelleAutor der Frage schooner | 2009-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, ich würde vorschlagen, die Umwandlung der querystring zu einer Sammlung mithilfe von
HttpUtility.ParseQueryString()
Können Sie dann suchen/hinzufügen/aktualisieren/ersetzen Sie die Werte direkt in die Sammlung, bevor Sie erneut erstellen der querystring aus dieser Sammlung.
Diese sollte es einfacher machen, zu erkennen Duplikate.
InformationsquelleAutor der Antwort Rob Levine
Können Sie den Zugriff und die Bearbeitung aller Werte der Querystring durch die Anfrage.QueryString-Auflistung. Hier ist ein link.
InformationsquelleAutor der Antwort Traveling Tech Guy
scheint dies ein grundlegendes design-problem.
statt der Aktualisierung der aktuellen Abfrage-string, was getan werden SOLLTE, ist einfach das hinzufügen alle Parameter, um die Basis zu jeder Zeit.
sicher, Sie KÖNNEN Sie aktualisieren, aber (pseudocode)
wird verrückt wenn Sie beginnen, mit mehr als 1 variable.
redesign wäre am besten, Aufwand ermöglicht.
InformationsquelleAutor der Antwort b0x0rz
Den WCF REST Starter Kit verfügbar ASP.NET auch eine neue "HttpQueryString" helper-Klasse, die am ehesten aufgenommen werden .NET 4.0 Zeitrahmen in der base class library.
Finden Sie einen ausgezeichneten screencast auf, wie Sie dieses Dienstprogramm verwenden, Klasse hier:
http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-HttpClient-Query-String-and-Form-Input-Management/
Marc
InformationsquelleAutor der Antwort marc_s