避免在ActionLink中自动生成查询字符串值

时间:2013-07-14 14:59:59

标签: asp.net-mvc c#-4.0 razor html.actionlink

我试图添加一个css类来锚定但是在渲染到html时,href属性具有值为4的查询字符串。控制器名称“Home”长度附加到href链接。如果我删除css类它工作正常。 Ho以避免自动生成的查询字符串值。

剃刀代码:

@Html.ActionLink("Create Application", "CreateApplication", "Home", new {@class="link"});

呈现的HTML是:

<a href="/Account/CreateApplication?Length=4" class="link">Create Application</a>

2 个答案:

答案 0 :(得分:2)

如果要将控制器名称作为参数传递,可以使用以下签名:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)

所以,你应该像这样使用它:

@Html.ActionLink("Create Application", "CreateApplication", "Home", null, new { @class = "link" });

答案 1 :(得分:1)

您正在呼叫的签名是

ActionLink(string text, string actionName, object rotueValues, object htmlAttributes)

特别是,第三个参数不是控制器名称,而是构建路径的参数对象。

您可以传递new { controller = "..." }