title: UseStatusCodePagesWithReExecute doesn't forward original querystring on Request
body: <p>I'm using <code>UseStatusCodePagesWithReExecute</code> to render custom error pages and I also have a Anchor TagHelper that needs to look at query string values and this TagHelper is used in <code>_Layout.cshtml</code>.  However, when a 'status code' page is being rendered, the original query string values are not passed.</p>
  <p>Normally, the TagHelper gets the query string values via:</p>
  <pre><code>var queryStrings =
      ViewContext?.HttpContext?.Request.Query
          .ToDictionary( d =&gt; d.Key, d =&gt; d.Value.ToString(), StringComparer.InvariantCultureIgnoreCase );
  </code></pre>
  <p>Is there anyway to have the original query string passed so that this code continues to work?</p>
  <p>Currently, my work around is to put the following code inside my TagHelper's <code>Process</code> method but it seems a bit heavy handed (especially if there are a lot of anchors on the page).</p>
  <pre><code>// Using UseStatusCodePagesWithReExecute removes the querystring from the request
  var feature = ViewContext?.HttpContext?.Features.Get&lt;IStatusCodeReExecuteFeature&gt;();
  var nvp = HttpUtility.ParseQueryString( feature?.OriginalQueryString ?? &quot;&quot; );
  var originalQueryStrings =
      nvp
          .AllKeys
          .ToDictionary( d =&gt; d, d =&gt; nvp[ d ], StringComparer.InvariantCultureIgnoreCase );
  </code></pre>
  <p>Interestingly, <code>UseExceptionHandler</code> seems to pass the original query string values through (unless I haven't traced the code based I'm working with is doing something special which I'm not seeing).</p>