路由相同的控制器和不同的区域
本文关键字:区域 控制器 路由 | 更新日期: 2023-09-27 18:17:23
我有两个同名控制器,ShopController
,一个是normal
控制器(基本上你通常把它们放在那里),另一个是在一个叫做Admin
的区域。
这是我的路线:
routes.MapRoute("Shop", "shop/{action}/{id}", new { controller = "Shop", action = "Index", id = UrlParameter.Optional }, new[] { "CMS.Controllers" });
routes.MapRoute("CategoriesrPartial", "Admin/Shop/CategoriesNavPartial", new { controller = "Shop", action = "CategoriesNavPartial" }, new[] { "CMS.Areas.Admin.Controllers" });
底部接Admin
区一号,顶部接常规区一号。
我试着根据SO的另一个答案添加名称空间,但它们没有区别,即使我在里面放了一些胡言乱语也没有区别。
我如何让这些路由指向我想要的确切控制器?
当你向路由集合中添加路由时,顺序是重要的,引擎将查找该路由集合,第一个与该路由匹配的路由将被选为获胜者。
如果你的第一个路由匹配,意味着它以单词shop开头,那么它将击中控制器shop,如果不匹配,它将继续在RouteData集合上匹配结构。在这种情况下,不需要添加名称空间
shop/{action} -> should start with shop word then you need to specify the action in your anonymous object