Asp.net Маршрутизация мульти контроллер - PullRequest
0 голосов
/ 25 ноября 2018

Я хочу, чтобы URL маршрутизации был ниже

URL / код категории, например: URL / люкс;URL / нормальный;url / sedan

и подробности публикации

url / post-detail-code ex: url / honda-civic-20-review

и URL бренда

URL / код бренда, например: URL / Toyota;URL / Hyndai;url / lexus

Вот конфигурация маршрута

routes.MapRoute(
   "postdetail",
   "{SeoFriendlyUrl}",
   defaults: new { controller = "PostDetail", action = "Index", SeoFriendlyUrl = UrlParameter.Optional },
   namespaces: new[] { "RiviWeb.Controllers" }
);

routes.MapRoute(
   "postcategory",
   "{SeoFriendlyUrl}",
   new { controller = "PostCategory", action = "Index",SeoFriendlyUrl = UrlParameter.Optional  },
   namespaces: new[] { "RiviWeb.Controllers" }
);



routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}",
    defaults: new { controller = "Home", action = "Index"},
    namespaces: new[] { "RiviWeb.Controllers" }
);

1 Ответ

0 голосов
/ 25 ноября 2018

Шаблоны маршрутов должны быть уникальными, чтобы избежать конфликтов маршрутов

//url/details/honda-civic-20-review
routes.MapRoute(
   name: "postdetail",
   url: "details/{SeoFriendlyUrl}",
   defaults: new { controller = "PostDetail", action = "Index", SeoFriendlyUrl = UrlParameter.Optional },
   namespaces: new[] { "RiviWeb.Controllers" }
);

//url/categories/luxury
//url/categories/normal
//url/categories/sedan    
routes.MapRoute(
   name: "postcategory",
   url: "categories/{SeoFriendlyUrl}",
   defaults: new { controller = "PostCategory", action = "Index",SeoFriendlyUrl = UrlParameter.Optional  },
   namespaces: new[] { "RiviWeb.Controllers" }
);

//url/brands/toyota
//url/brands/hyndai
//url/brands/lexus    
routes.MapRoute(
   name: "brand",
   url: "brands/{SeoFriendlyUrl}",
   defaults: new { controller = "Brands", action = "Index",SeoFriendlyUrl = UrlParameter.Optional  },
   namespaces: new[] { "RiviWeb.Controllers" }
);

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}",
    defaults: new { controller = "Home", action = "Index"},
    namespaces: new[] { "RiviWeb.Controllers" }
);
...