Html.ActionLink错误地获取当前的RouteValues

时间:2014-02-21 11:17:56

标签: asp.net-mvc-4

所以我有一条路线(例如〜/ Help / FAQ)。现在,如果我在常见问题解答以外的任何页面上,Html.ActionLink正如我所期望的那样工作。

@Html.ActionLink("FAQ", "FAQ", "Help", routeValues:=Nothing, htmlAttributes:=Nothing)

但是,如果当前浏览器URL是指定了id路由属性,http://www.example.com/Help/FAQ/56832的FAQ页面,则上面的ActionLink将获取当前的routeVaues并使用{{呈现链接1}}附加 - 即使我特意告诉ActionLink我不希望渲染任何routeValues。

这是一个错误还是我做错了什么?

1 个答案:

答案 0 :(得分:2)

您没有做错任何事情,ASP.NET MVC隐式使用HTML帮助程序中的当前路由值。你必须覆盖它们:

在C#中:

@Html.ActionLink("FAQ", "FAQ", "Help", new { id = null }, null)

在VB.NET中:

@Html.ActionLink("FAQ", "FAQ", Help", routeValues:= New With {.id = Nothing}, htmlAttributes:=Nothing)