title: Make ASP.NET MVC Route Id parameter required
body: <p>I have this route:</p>
  
  <pre><code>routes.MapRoute(
              "PlaceDetails",
              "{controller}/{action}/{id}",
              new { controller = "Place", action = "Details", id = UrlParameter.Optional }
          );
  </code></pre>
  
  <p>This routes this fine:
  mysite.com/place/details/123</p>
  
  <p>Making Id 123 available to the details action of the place controller - which can then lookup place '123'.</p>
  
  <p>However - this URL is also passed to the controller:
  mysite.com/place/details/</p>
  
  <p>I want this to return <code>HttpNotFound</code> - but it sends a null Id to the controller - and requires me to handle that.</p>
  
  <p>It seems neater if the route itself achieves this rather than needing unseemly null checks in the controller itself.</p>
  
  <p>I have found nothing in Google about this specific issue.</p>
  
  <p>How can I do this?</p>