title: Getting null parameter value in controller when an MVC route fires
body: <p>First off, I'm new to MVC, so please excuse the question if it's basic.</p>
  
  <p>I'm using a custom route to create the following URL (<a href="http://mysite/subscriber/12345" rel="nofollow noreferrer">http://mysite/subscriber/12345</a>) where 12345 is the subscriber number. I want it to run the <code>ShowAll</code> action in the <code>Subscriber</code> controller. My route is firing and using <a href="http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx" rel="nofollow noreferrer">Phil's route debugger</a>, when I pass in the above url, the route debugger shows ID as 12345. 
  My controller is accepting an int as <code>subscriberID</code>. When it fires,
  the controller throws the error  </p>
  
  <blockquote>
    <p>The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32".</p>
  </blockquote>
  
  <p>Why does the route debugger show a value and the controller doesn't see it?</p>
  
  <p>Here's my route (first one is the culprit)</p>
  
  <pre><code> routes.MapRoute(
                "SubscriberAll",
                "subscriber/{id}",
                new { controller = "Subscriber", action = "ShowAll", id=0 },
                new { id = @"\d+" } //confirm numeric
              );
  
              routes.MapRoute(
                  "Default", // Route name
                  "{controller}/{action}/{id}", // URL with parameters
                  new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
              );
  </code></pre>
  
  <p>Any idea why I'm getting a null in the <code>ShowAll</code> action? Here is the action method signature:</p>
  
  <pre><code> public ActionResult ShowAll(int id)
  </code></pre>