我正在开发一个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?
到目前为止,我只能将{strong>所有内容显示在/Settings/{PageName}
下,包括Home
页面,这显然不太好。
我看过网上搜索但是当页面都有不同的控制器时,我找不到一个如何实现这样的清晰示例。
如何做到这一点?感谢。
答案 0 :(得分:1)
你必须使用像这样的硬编码路线。您是否有理由为每个页面使用不同的控制器?
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" }
);