Can I add a class to an HTML.ActionLink in MVC3
asp.net Mvcasp.net Mvc Problem Overview
I have this code and would like to add a class to the link. Is it possible to do this in MVC3?
Html.ActionLink("Create New", "Create")
asp.net Mvc Solutions
Solution 1 - asp.net Mvc
Yes, you can just add another parameter with object representing css class:
Html.ActionLink("Create New", "Create", CONTROLLERNAME, null, new { @class= "yourCSSclass"} )
It can be translated to:
Html.ActionLink(link text, action name, controller name, route values object, html attributes object)
Edit:
To add custom styles, use this:
Html.ActionLink(
"Create New",
"Create",
CONTROLLERNAME,
null,
new { @class= "yourCSSclass", @style= "width:100px; color: red;" }
)
Solution 2 - asp.net Mvc
@Html.ActionLink("ClickMe", // link text
"Index", // action name
"Home", // controller
new { id = 2131 }, // (optional) route values
new { @class = "someClass" }) // html attributes
Solution 3 - asp.net Mvc
Html.ActionLink("Create New", "Create", null, htmlAttributes: new { @class = "className" })
Solution 4 - asp.net Mvc
According to the documentation, this should do the trick:
Html.ActionLink("LinkText", "Action", "Controller", new { }, new {@class="css class"})
Edit: Thanks for noticing Dampe, I updated the code sample.
Solution 5 - asp.net Mvc
You can use the ActionLink overload which takes an htmlAttributes parameter to add a class to the generated element:
Html.ActionLink("Create New", "Create", new {}, new { @class = cssClass });