我正在处理一个 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" }
);