我想用Html.ActionLink
HTML ID生成类似内容,以便根据我的位置更改CSS。我有一个带有一组链接的MasterPage
,我想区分活动的“Tab”与Jquery改变活动的css #id
现在我正在使用:
<%: Html.ActionLink("Some View", "Index", "controller")%>
它生成:
<a href="/controller">Some View</a>
我想生成:
<a id="something" href="/controller">Some View</a>
这可能吗?我试过了:
<%: Html.ActionLink("Some View", "Index", "controller", new {id="blahbla")%>
但这会产生:
<a href="/controller/Length?5">Some View</a>
答案 0 :(得分:50)
你走在正确的轨道上。我不确定为什么它不适合你,因为你的代码有一个错误,会产生} expected
错误。您正在寻找以下内容:
<%= Html.ActionLink("Test Link", "SomeAction", "SomeController",
null, new {id = "someID" }) %>
哪个会产生以下HTML:
<a href="/SomeController/SomeAction" id="someID">Test Link</a>
编辑:我刚刚意识到问题是什么,因为我误读了你的尝试。您正在使用错误的重载来传递id
html元素。您可能会将new { id="blah" }
参数传递给routeValues
参数,这将导致在构建路径链接时使用它,而不是您想要的htmlAttributes
参数。
我认为你正在使用:
ActionLink(string linkText, string actionName, Object routeValues,
Object htmlAttributes)
当您需要使用的是以下重载时,就像我在上面的答案中所做的那样:
ActionLink(string linkText, string actionName, string controllerName,
Object routeValues, Object htmlAttributes)
确保将new { id="blah" }
传递到htmlAttributes
参数。
答案 1 :(得分:5)
试试这个:
<%: Html.ActionLink("Some View", "Index", "controller", null, new {id="something}")%>
答案 2 :(得分:2)
基本上它给出了一个错误,因为没有方法重载具有你想要的签名。
与您所需的签名最接近的签名是
public static string ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
您正在将id属性传递给routevalue,这就是为什么它会为您提供有趣的href。将null传递给routevalue,然后添加你的htmlattributes
答案 3 :(得分:1)
试试这个
@Html.ActionLink("Forgot your access?", "RecoverPassword",
"Account", new { area = "registration-full.html" },
new { @class = "col-xs-6", id = "login-forget-link" })