【发布时间】:2015-04-18 19:27:19
【问题描述】:
我目前正在开发 MVC 中的课程申请网站。我对 MVC 比较陌生,我正在尝试掌握 RouteConfig 文件以实现信息架构的目标并避免重复。
我认为这是一个机会,只需三个控制器/视图来处理大部分逻辑:
查看 1. 地区/国家选择屏幕
查看 2. 课程选择屏幕
查看 3. 课程详情和申请屏幕
信息架构应按以下方式工作: {region}/{country}/{course}
用户选择课程所在的国家/地区,课程所在国家/地区可以位于以下三个地理区域之一:AMER、EMEA 和 APAC
用户选择其国家/州提供的课程。
~/AMER/USA/SignLanguage
~/EMEA/GBR/急救
~/APAC/AUS/EmploymentLaw
地区、国家/州和课程的每个值都是数据库驱动的用户查看课程详情,并申请该课程的课程。
看着Default MapRoute,高高在上,苦苦寻找引入动态控件和动作源(作为参数操作)的方法,确保不用构建三个控件来处理区域和多种行动,以适应正在处理的每个国家/地区。
由于课程实际上是一个 ID,我非常有信心这不是一个大问题。
我想我可以做这样的事情来处理控制器逻辑,但我认为即使在这种情况下我仍然需要生成几个控制器以及数百个动作。
routes.MapRoute(
name: "Courses",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Region",
action = "Index",
id = UrlParameter.Optional
}
constraints: new {
controller = @"^(AMER|EMEA|APAC).+/i"
});
解决此问题的最佳方法是什么?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 url-rewriting routes