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

bar*_*jed 3 asp.net url-rewriting .net-4.0

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

假设我有一个Article.aspx显示文章.我在Global.asax中为它做了一条路线:

routes.MapPageRoute("article-browse", "article/{id}", "~/Article.aspx");
Run Code Online (Sandbox Code Playgroud)

因此链接包含文章的ID,显然,这不是一个非常好的,也不是SEO友好的链接.我想在链接中显示文章标题,而不是ID.

我是否必须在参数(而不是id)中传递整个标题,然后创建一个SQL查询来搜索具有匹配标题的数据库记录?这听起来很吓人.也许有一些方法可以做类似于Eval()方法的东西,这会将标题改为ID?

非常感谢你!

Rad*_*094 5

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

routes.MapPageRoute("article-browse", "article/{id}/{title}", "~/Article.aspx");
Run Code Online (Sandbox Code Playgroud)

显然,ID之后的标题不是显示页面所必需的(您只使用ID来获取文章),但每次在您的站点中生成链接时,都会使用标题生成链接,并且机器人将在索引时使用它你的网页.

哦,你可能还想创建一个方法,将你的标题翻译成一个URL友好的字符串.像所有小写一样,将空格和其他字符转换为' - '等.