title: RouteTable.Routes.MapPageRoute with optional parameter
body: <p>I'm in an ASP.Net 4.0 web forms app.</p>
  
  <p>I have this routing already in place in Global.asax and working:</p>
  
  <pre><code>RouteTable.Routes.MapPageRoute("status", "members/{userid}/{status}", "~/members/status.aspx");
  </code></pre>
  
  <p>The 'status' parameter will let me set active tab on the page to either status, blog, photos or about (default is status).</p>
  
  <p>So when I post to: /members/status.aspx?userId=first.last</p>
  
  <p>I'll see /members/first.last/status when the page loads.</p>
  
  <p>What I need to do is render some links that will take user to the blog tab with a blog id so I can land on blog tab, which has multiple blogs displayed, and scroll to specific blog by id.  I'm trying to set the href similar to how we do it in MVC:  /members/first.last/blog/1000 (where 1000 is blog Id) - my other attempt is /members/first.last/blog/?id=1000 but I can never see the Id in the querystring keys in Page_Load.</p>
  
  <p>I've tried adding this routing to no avail:</p>
  
  <pre><code>RouteTable.Routes.MapPageRoute("status",
      "members/{userid}/{status}/{*queryvalues}", "~/members/status.aspx",
      false,
      new RouteValueDictionary { { "id", @"\d{4}" } });
  </code></pre>
  
  <p>Thanks for any assistance.</p>