因此,我有一个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时,它将调用操作,因为默认路由。有没有办法忽略默认路由?还是有一种更好的串联控制器的方法?
谢谢!
答案 0 :(得分:0)
您是否需要应用其他部分的默认路由?如果不是,为什么不简单地将其删除而仅拥有ProjectViewRoute?或考虑将“项目”创建为MVC“区域”(https://www.c-sharpcorner.com/article/getting-started-with-area-in-asp-net-mvc/)。这样可以消除“项目”区域之外的特定于项目的路线。