0

我有一个 MVC 3 应用程序,其中我想要不包含控制器或键名的动态 Url。一个很好的例子是如果我有一个博客,并且用户添加了新帖子。

假设用户创建了一个名为

我的博文

我有一个方法可以创建一个 url SLUG 并将其与条目一起存储在数据库中,所以我希望 Url 是

/我的博客帖子

现在 url 中没有控制器或键名?如何使用 MVC 路由实现这一点?目前,我正在通过将 Url 与/my-blog-post_1234 之类的 ID 匹配并使用流利的 nhibernate 将该 ID 作为 DB 查找键来做到这一点,但是一旦我删除了 ID,我就有点迷失了?

因为我仍然可以获得字符串/slug,但这意味着我现在必须根据字符串“my-blog-post”进行 SQL 查找?我读过这效率不高,可能会影响速度,其中一些标题可能很长。

我听说有人说自定义路由表?这对我有帮助吗?我想主要是以最快最有效的方式从数据库中获取数据。

非常感谢任何帮助/指针。

4

2 回答 2

1

MVC 框架在这里不会提供任何帮助。您的要求是通过 slug 查询,所以这就是您需要在数据库中执行的操作。

您只需要确保您在数据库中的该列上有一个索引,以确保查询不需要进行表扫描。

于 2012-06-10T08:29:08.987 回答
0

听起来您真正想要的是文档数据库。再加上MVC。我强烈推荐ravendb,

于 2012-06-11T02:15:33.323 回答