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

发布于 2024-10-07 16:18:29 字数 353 浏览 4 评论 0原文

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

例如:

/blogs/firstBlog/

/newprojects/secondBlog/

/foo/bar/thirdblog/

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

谢谢

I'm planning to write an MVC blog engine, supporting multiple blogs. When creating a blog the user will be able to choose the path where his blog will be accessed.

For example:

/blogs/firstBlog/

/newprojects/secondBlog/

/foo/bar/thirdblog/

This route information will be stored in the database. Instead of MVC using only the routes statically declared in Global.asax.cs, I'd like it to read the routes from the database first. Then if it doesn't find anything, fallback on the routes declared in Global.asax.cs. Is this possible? If yes what would you suggest to accomplish that?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丶视觉 2024-10-14 16:18:29

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

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

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

您可以在这里找到几个示例:

I'd declare your default route as normal, and then read the database and call the same methods, but rather than passing in hard coded strings, pass in the values from the database:

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

You'll need to map the tables properly and populate the fields in the imagined object 'RouteDetails', including the Defaults dictionary (which would probably be the most complicated).

You can find a couple of examples here:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文