asp.net mvc 2,通过路由字符串选择内容

时间:2010-10-14 08:15:10

标签: asp.net asp.net-mvc-2 routing

我无法在标题栏中找到我的名字......

问题是。我想通过输入标题来选择博客帖子,如下所示: http://localhost:3254/blog/2010/10/net-programming

博客标题的标题应为“.net编程”。所以我设置了一个寻找一个月一年的路线,最后是一个字符串。但是我应该如何在数据库中保存它以便能够搜索它? 我应该添加一个包含asp编程的字段,比如id吗?或者我应该为每次搜索解析标题?或者我应该转换标题,然后在将其显示给用户之前将其转换回来?

2 个答案:

答案 0 :(得分:2)

标准方法是在数据库中创建一个单独的列(通常称为“slug”或永久链接),用于存储Urls可能使用的html友好名称。然后,如果帖子的标题发生变化,你通常会保持slug相同,这样任何为链接添加书签的人仍然可以找到帖子。我们的价值通常是从博客标题中默认,用 - 替换空格 - 并删除任何非网友友好角色。

http://en.wikipedia.org/wiki/Slug_%28web_publishing%29

答案 1 :(得分:0)

我能想到两种可能的解决方案

  • 创建自己的Route处理程序,并在其代码中搜索数据库中的实际记录
  • 在Controller中创建一个操作方法,该方法接受字符串参数并调用该参数id(或者MapRoutes方法中的默认值)。