title: Modify request querystring parameters to build a new link without resorting to string manipulation
body: <p>I want to dynamically populate a link with the URI of the current request, but set one specific query string parameter. All other querystring paramaters (if there are any) should be left untouched. And I don't know in advance what they might be.</p>
  
  <p>Eg, imagine I want to build a link back to the current page, but with the querystring parameter "valueOfInterest" always set to be "wibble" (I'm doing this from the code-behind of an aspx page, .Net 3.5 in C# FWIW).</p>
  
  <p>Eg, a request for either of these two:</p>
  
  <pre><code>/somepage.aspx
  /somepage.aspx?valueOfInterest=sausages
  </code></pre>
  
  <p>would become: </p>
  
  <pre><code>/somepage.aspx?valueOfInterest=wibble
  </code></pre>
  
  <p>And most importantly (perhaps) a request for:</p>
  
  <pre><code>/somepage.aspx?boring=something
  /somepage.aspx?boring=something&amp;valueOfInterest=sausages
  </code></pre>
  
  <p>would preserve the boring params to become:</p>
  
  <pre><code>/somepage.aspx?boring=something&amp;valueOfInterest=wibble
  </code></pre>
  
  <p>Caveats: I'd like to avoid string manipulation if there's something more elegant in asp.net that is more robust. However if there isn't something more elegant, so be it.</p>
  
  <p>I've done (a little) homework:
  I found a blog post which suggested copying the request into a local HttpRequest object, but that still has a read-only collection for the querystring params. I've also had a look at using a URI object, but that doesn't seem to have a querystring</p>