【发布时间】:2013-04-08 05:34:17
【问题描述】:
基本上我有一个使用 ASP.NET MVC 构建的 CMS 后端,现在我要转到前端站点,并且需要能够根据输入的路径从我的 cms 数据库中加载页面。
因此,如果用户输入 domain.com/students/information,MVC 将在 pages 表中查看是否存在具有与学生/信息匹配的永久链接的页面,如果存在,它将重定向到页面控制器,然后从数据库中加载页面数据并返回给视图显示。
到目前为止,我已经尝试了一条包罗万象的路线,但它只适用于两个 URL 段,即 /students/information,但不适用于 /students/information/fall。我在网上找不到任何关于如何做到这一点的信息,所以我想在这里问一下,在我找到并开源 ASP.NET MVC cms 并剖析代码之前。
这是我目前的路线配置,但我觉得有更好的方法来做到这一点。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route to handle core pages
routes.MapRoute(null,"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Index" }
);
// CMS route to handle routing to the PageController to check the database for the route.
var db = new MvcCMS.Models.MvcCMSContext();
//var page = db.CMSPages.Where(p => p.Permalink == )
routes.MapRoute(
null,
"{*.}",
new { controller = "Page", action = "Index" }
);
}
如果有人能指出我将如何从数据库加载 CMS 页面(最多三个 URL 段)并且仍然能够加载具有预定义控制器和操作的核心页面的正确方向。
【问题讨论】:
标签: c# asp.net-mvc-4 routes