title: Asp.net MVC 5 MapRoute for multiple routes
body: <p>I have 3 routes in RouteConfig:</p>
  
  <pre><code>routes.MapRoute(
      name: "ByGroupName",
      url: "catalog/{categoryname}/{groupname}",
      defaults: new { controller = "Catalog", action = "Catalog" }
  );
  routes.MapRoute(
      name: "ByCatName",
      url: "catalog/{categoryname}",
      defaults: new { controller = "Catalog", action = "Catalog" }
  );
  routes.MapRoute(
      name: "ByBrandId",
      url: "catalog/brand/{brandId}",
      defaults: new { controller = "Catalog", action = "Catalog" }
  );
  </code></pre>
  
  <p>and this is my action controller receiving parameters:</p>
  
  <pre><code>public ActionResult Catalog(
      string categoryName = null,
      string groupName = null,
      int pageNumber = 1,
      int orderBy = 5,
      int pageSize = 20,
      int brandId = 0,
      bool bundle = false,
      bool outlet = false,
      string query_r = null)
  {
  // ...
  }
  </code></pre>
  
  <p>when I Use in view a link with <code>@Url.RouteUrl("ByBrandId", new {brandId = 5})</code>, I get in Action a parameter "categoryname"="brand" and brandId=0 instead of only brandId=5...</p>
  
  <p>When I Call <code>"http://localhost:3453/catalog/brand/5"</code> with "ByBrandId" routeurl I want to get brandId=5 in actioncontroller..., the equivalent of <code>"http://localhost:3453/catalog/Catalog?brandId=1"</code></p>
  
  <p>thanks</p>