我想给一个生成的Html.ActionLink HTML的id,所以我可以改变CSS取决于我在哪里。我有一个MasterPage与一组链接,我想区分活动的“Tab”与Jquery更改活动#id的CSS
现在我使用:
<%: Html.ActionLink("Some View","Index","controller")%>
它生成:
<a href="/controller">Some View</a>
我想生成:
<a id="something" href="/controller">Some View</a>
那可能吗?我试过了:
<%: Html.ActionLink("Some View","controller",new {id="blahbla")%>
但这产生:
<a href="/controller/Length?5">Some View</a>
解决方法
你在正确的轨道上。我不知道为什么它不适合你,因为你的代码有一个错字,会产生一个预期的错误。以下是您要寻找的内容:
<%= Html.ActionLink("Test Link","SomeAction","SomeController",null,new {id = "someID" }) %>
其中生成以下HTML:
<a href="/SomeController/SomeAction" id="someID">Test Link</a>
编辑:我只是意识到了什么问题,因为我错误地读你的尝试。你使用错误的重载传递id html元素。您可能将新的{id =“blah”}参数传递到routeValues参数,这将导致它在构建路由链接时使用,而不是htmlAttributes paramater,这是你想要的。
我想你在使用:
ActionLink(string linkText,string actionName,Object routeValues,Object htmlAttributes)
当你需要使用的是以下重载,像我上面在我的答案:
ActionLink(string linkText,string controllerName,Object htmlAttributes)
它确保新的{id =“blah”}被传递到htmlAttributes参数。