如何在MVC中路由到url.com/ControllerA/ControllerB/ControllerB的操作

时间:2019-04-03 14:30:09

标签: c# asp.net model-view-controller

因此,我有一个ProjectsController,其默认路由为url.com/projects/action,我为每个项目(如MosaController)都有一个控制器。项目的URL应为url.com/projects/{ProjectName}/action,因此在Mosa示例中为url.com/projects/Mosa/action。

我已经在RouteConfig中设置了可以解决此问题的路由

routes.MapRoute(
    name: "ProjectViewRoute",
    url: "projects/{controller}/{action}",
    defaults: new { controller = "Projects", action = "Index" }
);

此方法有效,我可以调用url.com/projects/action和url.com/projects/Mosa/action并选择了正确的控制器,但是当我调用URL url.com/{ProjectName}/action时,它将调用操作,因为默认路由。有没有办法忽略默认路由?还是有一种更好的串联控制器的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否需要应用其他部分的默认路由?如果不是,为什么不简单地将其删除而仅拥有ProjectViewRoute?或考虑将“项目”创建为MVC“区域”(https://www.c-sharpcorner.com/article/getting-started-with-area-in-asp-net-mvc/)。这样可以消除“项目”区域之外的特定于项目的路线。