MVC 4 ActionLink Dictionary htmlAttributes doesn't work

asp.net-mvc-4, razor

Solution

None of the provided `ActionLink` helper methods accept parameters like you're specifying. The only ones that take a parameter of type IDictionary for the html attributes expect a RouteValueDictionary for the route values. As it is, you're currently calling a function that is treating your dictionary as an anonymous object

Try

@Html.ActionLink("Test", "Tesz", "Test",
new RouteValueDictionary(new {id = 1}),
new Dictionary<string, object> { { "class", "ui-btn-test" }, { "data-icon", "gear" } })

Or implement your own extension method.

Problem

I hope this is just a bug but figured maybe it was just me. ``` @Html.ActionLink("Test", "Test", "Test", new { id = 1 }, new Dictionary<string, object> { { "class", "ui-btn-test" }, { "data-icon", "gear" } }) ``` This does work but if I wanted to add further attributes I have to do it manually! ``` @Html.ActionLink("Test", "Test", "Test", new { id = 1 }, new { @class="ui-btn-test", data_icon="gear", data_new_attr="someextra" }) ``` The first doesn't work anymore and I need this one to work. The second works but don't care that it does, because I'm trying to add more attributes, object will not work unless told differently.

Original source