Anforderung ändern querystring-Parameter zum Aufbau einer neuen Verknüpfung ohne Rückgriff auf string-manipulation

Möchte ich dynamisch füllen Sie einen link mit der URI der aktuellen Anforderung, sondern eine bestimmte query-string-parameter. Alle anderen querystring-Parameter (falls vorhanden) sollte nicht angefasst werden. Und ich weiß nicht im Voraus, was Sie sein könnte.

ZB vorstellen, das ich bauen will, einen link zurück auf die aktuelle Seite, aber mit dem querystring-parameter "valueOfInterest" immer gesetzt werden "wibble" (ich Tue dies aus der CodeBehind einer aspx-Seite .Net 3.5 in C# FWIW).

ZB eine Anfrage für eine der beiden:

/somepage.aspx
/somepage.aspx?valueOfInterest=sausages

werden würde:

/somepage.aspx?valueOfInterest=wibble

Und vor allem (vielleicht) einen Antrag für:

/somepage.aspx?boring=something
/somepage.aspx?boring=something&valueOfInterest=sausages

erhalten würde das langweilig params zu werden:

/somepage.aspx?boring=something&valueOfInterest=wibble

Vorbehalte: ich möchte vermeiden, string-manipulation, wenn es auch etwas eleganter in asp.net das ist robuster. Aber wenn es nicht etwas eleganter, so soll es sein.

Ich gemacht habe (ein wenig) Hausaufgaben:
Ich fand ein blog-post, die vorgeschlagen, kopieren Sie die Anfrage in einer lokalen HttpRequest-Objekt, aber das hat noch einen nur-lese-Kollektion für die querystring-Parameter. Ich habe auch einen Blick auf die Verwendung einer URI-Objekt, aber das scheint nicht zu haben eine querystring

  • Die original-HttpRequest-Objekt ist ReadOnly, aber Sie können eine neue Kopie und führen Sie die änderungen, die-siehe meine Antwort unten.
InformationsquelleAutor Andrew M | 2010-04-06
Schreibe einen Kommentar