Asp.net MVC 5 MapRoute pour de multiples voies

J'ai 3 itinéraires en RouteConfig:

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" }
);

et c'est mon contrôleur d'action de la réception de paramètres:

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)
{
//...
}

quand j'utilise en vue d'un lien avec @Url.RouteUrl("ByBrandId", new {brandId = 5}), - je obtenir dans l'Action d'un paramètre "nom de catégorie"="marque" et de brandId=0 au lieu de seulement brandId=5...

Quand je l'appelle "http://localhost:3453/catalog/brand/5" avec "ByBrandId" routeurl je veux obtenir brandId=5 dans actioncontroller..., l'équivalent de "http://localhost:3453/catalog/Catalog?brandId=1"

grâce