title: asp.net mvc routing rules
body: <p>I have the following routes defined in an asp.net mvc project</p>
  
  <pre><code>//Products/Category/SubCategory/Page 
  routes.MapRoute(
      "ProductCategoryTypePaging", 
      "Products/{Category}/{subCategory}/Page{page}", 
      new { controller = "Products", action = "Index" }, new { page = @"\d+" }
  );
  
  //Products/Category/Page 
  routes.MapRoute(
      "ProductCategoryPaging", 
      "Products/{Category}/Page{page}", 
      new { controller = "Products", action = "Index" }, new { page = @"\d+" }
  );
  
  //Products/Category/SubCategory 
  routes.MapRoute(
      "ProductCategoryType", 
      "Products/{Category}/{subCategory}", 
      new { controller = "Products", action = "Index", page = 1 }
  );
  
  //Products/Category 
  routes.MapRoute(
      "ProductCategory", 
      "Products/{Category}", 
      new { controller = "Products", action = "Index" }
  );
  
  
  routes.MapRoute(
      "Default", // Route name
      "{controller}/{action}/{id}", // URL with parameters
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  );
  </code></pre>
  
  <p>These seem to work fine BUT if i try and view product details, it breaks.  To view details, the Url is like this:</p>
  
  <p>/Products/Details/18 </p>
  
  <p>Running that matches on the Products/Category/SubCategory route</p>
  
  <p>What do i need to do differently to make this work?</p>