ASP.NET MVC路由/ SEO友好URL

时间:2010-09-01 16:15:19

标签: c# asp.net-mvc seo url-routing

我正在尝试做类似stackoverflow的事情

从stackoverflow获取一个链接,例如:

Hidden Features of C#?

如果删除最后一部分 (Hidden Features of C#?) 它仍然会返回相同的结果。

对于我在Global.asax中的路由,我试过做类似的事情 “{动作} / {ID} / {TITLE}”

在我的页面上,这是我的链接:

<%= Html.ActionLink(video.Title, "Details", "Videos", new {id = video.ID, title = video.Title.Replace(" ", "-")}, null) %>

除了在“?title = blah-blah-blah ”之后输入的ID之外,这就是我想要它做的大部分工作

我希望它说“ id / blah-blah-blah

我的问题是什么? (除了是菜鸟)

2 个答案:

答案 0 :(得分:9)

前一段时间我写了一篇博文,认为这可能会有所帮助:

http://mynameiscoffey.com/2010/12/19/seo-friendly-urls-in-asp-net-mvc/

基本上,当您的操作正在执行时,您需要检查您的操作是否存在正确的SEO友好标题,如果找不到,请向浏览器发出重定向到正确的SEO友好URL

答案 1 :(得分:5)

该路线看起来应该可以与ActionLink调用一起使用,所以这是一个猜测。您是否在默认路线后注册“{action} / {id} / {title}”路线?如果是这样,默认路由将首先匹配,并将标题值放在查询字符串中,因为它不会出现在路径中。如果您在{controller} / {action} / {id}默认值之前注册自定义路由,它应该可以正常工作。