我正在尝试做类似stackoverflow的事情
从stackoverflow获取一个链接,例如:
如果删除最后一部分 (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 ”
我的问题是什么? (除了是菜鸟)
答案 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}默认值之前注册自定义路由,它应该可以正常工作。