在 MVC4 中使用 MVC 路由自定义"subdirectory" URL



我正在处理一个 MVC4 项目,但我对如何使用自定义路由实现以下方案有点模糊:

假设我有以下页面结构

+ Home                (Desired URL: /Home)
+ Settings            (Desired URL: /Settings)
  - Emails            (Desired URL: /Settings/Emails)
  - SMS               (Desired URL: /Settings/SMS)
  - Notifications     (Desired URL: /Settings/Notifications)

每个页面都有自己的控制器、模型和视图,因为一些设置页面非常复杂。如何通过路由实现所需的 URL?

到目前为止,我只能让所有内容都出现在/Settings/{PageName}下,包括Home页面,这显然是不好的。

我在网上查看并搜索过,但是当页面都有不同的控制器时,我找不到有关如何实现此类目标的清晰示例。

如何做到这一点?谢谢。

您必须使用这样的硬编码路由。 您是否有理由为每个页面使用不同的控制器?

routes.MapRoute(
name: "Home",
url: "Home",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Settings",
url: "Settings",
defaults: new { controller = "Settings", action = "Index" }
);
routes.MapRoute(
name: "Emails",
url: "/Settings/Emails",
defaults: new { controller = "Emails", action = "Index" }
);

最新更新