通过slugged string / friendly URL选择

时间:2013-07-30 18:49:34

标签: c# mysql asp.net-mvc-4 slug

目标

使用Name-Of-Product而非其ID来从数据库中选择数据。

问题

我的应用程序允许用户比较产品价格。为了进行一些比较,我需要访问myapp.com/Product/Compare?Id=1。我正在升级我的应用程序,现在我想访问myapp.com/Product/Xbox-360进行比较。

如何从数据库中选择 sluggified 字而不是id?我必须 unsluggify 字符串吗?

有人可以启发我吗?

我已经尝试了什么

我甚至不知道如何开始。换句话说,我没有尝试任何事情。 哦......实际上,如果有必要,我已经创建了一个可以缓冲某些字符串的方法,但我认为没有必要在这里发帖。

SQL Spotlight

我生成要比较的产品列表的查询很简单:

Select product.Name,
       marketProduct.Price
From app_products As product
Join app_marketProducts As marketProduct
Where product.Id = 1

1 个答案:

答案 0 :(得分:2)

你基本上有两个选择:

  • 您可以将 slug 存储在数据库的新列中。

  • 您可以通过某种方式将主键(ID)添加到您的网址:

    a)直接到slu((例如/ 42-My-Slug)

    b)到URL的另一部分(例如/ 42 / My-Slug)。这似乎是最好的做法,例如StackOverflow使用它。