繁体   English   中英

路由同一个名称控制器和不同区域

[英]Routing same name controllers and different areas

我有两个相同的名称控制器, 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM