我希望这只是一个错误,但想到也许只是我。
@Html.ActionLink("Test", "Test", "Test",
new { id = 1 },
new Dictionary<string, object> { { "class", "ui-btn-test" }, { "data-icon", "gear" } })
这确实有效,但如果我想添加更多属性,我必须手动完成!
@Html.ActionLink("Test", "Test", "Test",
new { id = 1 },
new { @class="ui-btn-test", data_icon="gear", data_new_attr="someextra" })
第一个不再起作用,我需要这个工作。第二个工作,但不关心它,因为我试图添加更多的属性,除非有不同的说法,否则对象将无法工作。
答案 0 :(得分:8)
所提供的ActionLink
辅助方法都不接受您指定的参数。唯一为html属性采用IDictionary类型参数的人需要RouteValueDictionary作为路由值。实际上,您正在调用一个将字典视为匿名对象的函数
尝试
@Html.ActionLink("Test", "Tesz", "Test",
new RouteValueDictionary(new {id = 1}),
new Dictionary<string, object> { { "class", "ui-btn-test" }, { "data-icon", "gear" } })
或者实现自己的扩展方法。