路由到不同控制器的不同默认操作

本文关键字:默认 操作 控制器 路由 | 更新日期: 2023-09-27 17:55:19

我使用的是下面的默认路由。

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = "17" }

问题是它非常僵化。在每种情况下,默认操作将为"索引"。(默认控制器将是"主页"。

当控制器 Uno 成为目标时,我想路由到操作 IndexHey,当 Duo 成为目标时路由到操作 IndexHoopla。这是什么语法?!

(我已经尝试了不同的附加路由映射,但没有让它工作,现在我厌倦了反复试验。

路由到不同控制器的不同默认操作

最简单的方法是通用控制器之前为特定控制器提供特定路由,例如

routes.MapRoute(
  name: "Uno",
  url: "Uno/{action}/{id}",
  defaults: new { controller = "Uno", action = "IndexHoopls", id = "17" }
routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = "17" }