我在 Razor 页面上有以下链接:

@Html.ActionLink("Create New Profile", "Create", "Profile", new { @class="toplink" })

它出现在 View 源页面中,如下所示:
<a href="/admin/profile/create?length=7" class="toplink">Create New Profile</a>

当我点击链接时,网址是这样的:
http://localhost:54876/admin/profile/create?length=7

我不想要 ?length=7 。为什么会自动生成这个?

最佳答案

您使用的 ActionLink 覆盖与 (string linkText, string actionName, Object routeValues, Object htmlAttributes) 覆盖相匹配。所以你的“配置文件”值被传递给 routeValues 参数。此函数相对于该参数的行为是获取其上的所有公共(public)属性并将其添加到用于生成链接的路由值列表中。由于 String 只有一个公共(public)属性 (Length),因此您最终会得到“length=7”。

您要使用的正确重载是 (string linkText, string actionName, string controllerName, Object routeValues, Object htmlAttributes),您将其称为 loke:

@Html.ActionLink("Create New Profile", "Create", "Profile", new {}, new { @class="toplink"})

关于asp.net-mvc - Razor actionlink 自动生成 ?length=7 在 URL 中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4357856/

10-17 02:33