为什么我的 MVC 操作链接将我带到具有长度查询字符串值的 URL?

Why is my MVC actionlink taking me to the URL with a Length querystring value?

关于这个我真的没法解释了。

简而言之,我正在尝试渲染这个 link:

<a class="button active-button" href="/Home/Register">Register</a>

我的 ActionLink 如下所示:

@Html.ActionLink("Register", "Register", "Home", htmlAttributes: new { @class = "button active-button" })

呈现这个 link:

<a class="button active-button" href="/Home/Register?Length=4">Register</a>

我不明白 QueryString 值的来源,所以我在哪里犯了错误?

发生这种情况是因为您调用了 ActionLink 的错误重载。

@Html.ActionLink("Register", "Register", "Home", null, new { @class = "button active-button" }) 

这是由于另一个 answer.If 中提到的错误重载造成的。您对应该使用哪个重载感到困惑,那么您可以使用 visual studio 智能。

MVC3+ 你有这个

Html.ActionLink("Register", 
                "Register",   // <-- ActionMethod
                "Home",  // <-- Controller Name.
                 null, // <-- Route arguments..you don't need this
                new {@class = "button active-button"}// <-- htmlArguments
                )