ASP.NET 4.0 URL重写:如何处理ID

ASP.NET 4.0 URL重写:如何处理ID,asp.net,.net-4.0,url-rewriting,Asp.net,.net 4.0,Url Rewriting,我刚刚开始将新的.NET4.0URL重写添加到我的项目中。我有个问题 routes.MapPageRoute("article-browse", "article/{id}/{title}", "~/Article.aspx"); 假设我有一个Article.aspx,它显示文章。我在Global.asax中为它制定了路线: routes.MapPageRoute("article-browse", "article/{id}", "~/Article.aspx"); 因此,链接由文章的id

我刚刚开始将新的.NET4.0URL重写添加到我的项目中。我有个问题

routes.MapPageRoute("article-browse", "article/{id}/{title}", "~/Article.aspx");
假设我有一个Article.aspx,它显示文章。我在Global.asax中为它制定了路线:

routes.MapPageRoute("article-browse", "article/{id}", "~/Article.aspx");
因此,链接由文章的id组成,显然,这不是一个很好的链接,也不是一个SEO友好的链接。我想在链接中显示文章的标题,而不是ID

我是否必须在参数中传递整个标题(而不是id),然后进行SQL查询以搜索具有匹配标题的数据库记录?听起来很可怕。也许有某种方法可以做一些类似Eval()方法的事情,将标题更改为ID


多谢各位

没有什么可以阻止您在链接中同时包含ID(用于快速SQL检索)和文章标题(用于SEO目的)。这正是stackoverflow处理路由的方式(检查此问题的地址)

显然,ID后面的标题不是显示页面所必需的(您仅使用ID获取文章),但每次您在站点中生成链接时,都会使用标题生成链接,而机器人程序在为页面编制索引时会使用该标题


哦,您可能还想创建一个方法,将标题转换为URL友好的字符串。例如,将所有小写字母、空格和其他字符转换为“-”,等等。

谢谢!这是如此简单,我感到惭愧,我没有想到这一点早!关于如何编写你提到的SEO友好方法的例子,你有什么建议吗?@barjed:事实上,这不是一个坏问题,我看到人们对此感到困惑;msdn示例: