存储在数据库中的动态/可编辑MVC路由,用于博客引擎

时间:2010-12-16 00:44:05

标签: asp.net-mvc model-view-controller routing routes asp.net-mvc-routing

我打算写一个MVC博客引擎,支持多个博客。创建博客时,用户可以选择访问其博客的路径。

例如:

/博客/的 firstBlog /

/ newprojects /的 secondBlog /

/富/酒吧/的 thirdblog /

此路线信息将存储在数据库中。而不是仅使用在Global.asax.cs中静态声明的路由的MVC,我希望它首先从数据库中读取路由。然后,如果它没有找到任何内容,则回退在Global.asax.cs中声明的路由。这可能吗?如果是的话,你建议你做什么?

由于

1 个答案:

答案 0 :(得分:1)

我会正常声明你的默认路由,然后读取数据库并调用相同的方法,但不是传入硬编码字符串,而是传入数据库中的值:

foreach(RouteDetails routeDetails in routesFromDatabase)
{
    routes.MapRoute(
        routeDetails.Name,                                             
        routeDetails.Route,
        routeDetails.Defaults);
}

您需要正确映射表并填充想象对象'RouteDetails'中的字段,包括Defaults字典(可能是最复杂的字典)。

你可以在这里找到几个例子: