我打算写一个MVC博客引擎,支持多个博客。创建博客时,用户可以选择访问其博客的路径。
例如:
/博客/的 firstBlog /
/ newprojects /的 secondBlog /
/富/酒吧/的 thirdblog /
此路线信息将存储在数据库中。而不是仅使用在Global.asax.cs中静态声明的路由的MVC,我希望它首先从数据库中读取路由。然后,如果它没有找到任何内容,则回退在Global.asax.cs中声明的路由。这可能吗?如果是的话,你建议你做什么?
由于
答案 0 :(得分:1)
我会正常声明你的默认路由,然后读取数据库并调用相同的方法,但不是传入硬编码字符串,而是传入数据库中的值:
foreach(RouteDetails routeDetails in routesFromDatabase)
{
routes.MapRoute(
routeDetails.Name,
routeDetails.Route,
routeDetails.Defaults);
}
您需要正确映射表并填充想象对象'RouteDetails'中的字段,包括Defaults
字典(可能是最复杂的字典)。
你可以在这里找到几个例子: