title: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type
body: <p>I'm trying to retrieve data from my db via the <code>id</code> parameter in my default route:</p>
  
  <pre><code>routes.MapRoute(
              "Default", // Route name
              "{controller}/{action}/{id}", // URL with parameters
              new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
          );
  </code></pre>
  
  <p>In this ActionResult I'm trying to render a custom user control, based on the route id parameter so that I retrieve the relevant data for the page that's requested</p>
  
  <pre><code>public ActionResult InitPageNav(int id)
  {
        PageModel page = PageNavHelper.GetPageByID(id);
        return PartialView("UserControls/_PageNavPartial", page);
  }
  </code></pre>
  
  <p>Edit*</p>
  
  <pre><code>public static MvcHtmlString CreateMenuItems(this HtmlHelper helper, string action, string text)
  {
       var menuItem = new TagBuilder("li");
       var link = new TagBuilder("a");
  
       //Get current action from route data
       var currentAction = (string)helper.ViewContext.RouteData.Values["action"];
       link.Attributes.Add("href", string.Format("/Home/{0}", action));
  
       if (currentAction == action)
       {
           menuItem.AddCssClass("selected");
           link.Attributes.Remove("href");
           link.Attributes.Add("href", string.Format("/Home/{0}", currentAction.ToString()));
       }
  
       link.SetInnerText(text);
       menuItem.InnerHtml = link.ToString();
  
       return MvcHtmlString.Create(menuItem.ToString());
   }
  </code></pre>
  
  <p>But I keep getting the error:</p>
  
  <p><code>The parameters dictionary contains a null entry for parameter 'id' of non-nullable type</code></p>
  
  <p>Can anyone spot where I'm going wrong? </p>