【发布时间】:2009-07-24 00:19:43
【问题描述】:
假设我有一个包含产品和类别的 ASP.Net MVC 站点,我想要这些 url...
产品:
- Fruitshop.com/super-tasty-apple
- Fruitshop.com/squishy-orange
- Fruitshop.com/worm-infested-apple
- Fruitshop.com/megaorange
分类:
- Fruitshop.com/apples
- Fruitshop.com/oranges
对于数据库中的每个产品/类别,我都会保存 slug(或任何您称之为的名称),例如“super-delicious-apple”或“apples”。
没有模式或正则表达式(无论如何我都可以看到),这让我可以仅通过查看 url 来确定它是产品还是类别。我需要查看数据库才能知道。
解决这个问题的好方法是什么?
- 在应用启动时,注册每个产品和类别的路由
- 创建一些处理请求的代码,并在数据库中查找 slug
- ??
暂时不要介意缓存、刷新路由表等。 :)
如果您认为这个问题有更合适的标题,请随时编辑我的问题标题 - 这是我能想到的最好的标题。
【问题讨论】:
-
尽管我已经提供了答案,但我必须诚实地说,这种 url 结构可能会让用户感到困惑,您甚至可能会发现 Google 无法正确抓取您的网站.如果此结构是由于将旧站点迁移到 .NET MVC 造成的,您应该考虑创建一个更易于阅读的新 url 结构(例如fruitshop.com/categories/apples 和fruitshop.com/products/megaorange )。然后我会在旧网址上设置 301 以指向新网址。
标签: asp.net-mvc routing