c# - 如何在 MVC 中路由到 url.com/ControllerA/ControllerB/ControllerB 的操作
问题描述
所以我有一个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 时,它会调用该操作,因为的默认路由。有没有办法忽略默认路由?还是有更好的方法来连接这样的控制器?
谢谢!
解决方案
您是否需要应用程序其他部分的默认路由?如果没有,为什么不简单地删除它并只拥有 ProjectViewRoute?或者考虑将“项目”创建为 MVC“区域”(https://www.c-sharpcorner.com/article/getting-started-with-area-in-asp-net-mvc/)。这将消除项目区域之外的项目特定路线。
推荐阅读
- angular - 嵌套 ngFor Ionic 2:不工作
- php - 在 Woocommerce 3 中更改缩放放大镜产品图像大小
- c# - 在 Sql 中插入并选择最后一个值
- sql-server - 如何在插入语句中使用存在关键字
- android - 从 Firebase 数据库 Android 获取密钥
- gremlin - JanusGraph 的 Graphloader
- angular - 禁用按钮Angular2
- react-native - 如何解决gradle包含太多目录
- wordpress - 从 httrack 上传 wordpress 主题下载的任何可能方式?
- c# - static extern void Buffer.InternalBlockCopy 是 .NET Framework 的一部分吗?