如何在路由配置中路由CMS网址和可选参数/操作?

时间:2013-07-17 23:36:55

标签: c# asp.net-mvc url content-management-system asp.net-mvc-routing

我正在尝试将基本CMS添加到MVC网站,该网站使用“url-formatted-string”作为CMS项目的ID。

我花了很多时间试图满足下面列出的要求。但现在我想知道“甚至可以做到这一点吗?”

首先,我想支持“开箱即用”的MVC网址。

/news => NewsController.Index - I will set this to get the latest X items

/news/create => NewsController.Create

/news/edit/8 => NewsController.Edit - uses 8 as the id parameter

但我也想支持/ news / section 中的CMS项,并且只能通过纯文本URL进行过滤。

/news/news-item-title => NewsController.Display - uses "news-item-title" as an id parameter

/news/search/search-term => NewsController.Search - uses "search-term" as a string parameter

最后,我想要一个默认控制器/操作来获取没有定义控制器或操作的URL。 (并为此适应正斜杠)。例如:

/services/consulting => CMSPageController.Index - defaults to CMSPage Controller and uses "services/consulting" as an id parameter

/about-us  = CMSPageController.Index - defaults to CMSPage Controller and uses "about-us" as an id parameter

所有这一切都可能,还是我应该放弃对抗route_config?

1 个答案:

答案 0 :(得分:0)

最终我偶然发现了答案:

Dynamic Routes from database for ASP.NET MVC CMS

答案是提供自定义路由约束,检查数据库是否存在CMS网址。