【发布时间】:2009-06-22 12:48:11
【问题描述】:
考虑以下路线:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
使用Url.Action("Service", "CustomerService") 会生成/service 的url,而不是预期的/service/
有什么办法可以让它工作,还是我必须求助于实现我自己的从RouteBase派生的路由?
【问题讨论】:
-
请问为什么这很重要?就浏览器而言,他们不在乎。并且就基于此路由构建您自己的路由 url 而言,尾随 / 将在需要时自动添加。
-
不过,真的没有理由打扰 - 即使是遗留问题。如果尾随斜杠完全不同,则没有区别。所有旧网址都将有效,所有新网址都将适用于旧位置。
-
是的,但是对于 SEO,它会有重复的 url 问题。旧书签和搜索引擎结果仍会使用带有斜线的旧网址。即使我将斜线 301 转换为非斜线版本,它仍然是一个需要一些额外代码来修复的问题。
-
只是关于尾部斜杠无关紧要的主题......在这种情况下这是正确的,但在许多其他情况下它们确实很重要,所以我不会把这种说法当作福音。跨度>
-
@Tomas Lycken - 这非常重要。如果您的 URL 之前使用尾部斜杠编入索引,那么尝试将所有旧 URL 301 转换为新的无斜杠 URL,您将陷入痛苦的世界。如果你不这样做,你的页面排名就会受到打击,因为谷歌会在两个单独的 URL 处惩罚重复的内容。
标签: asp.net-mvc asp.net-mvc-routing