razor - MVC 4 ActionLink 字典 htmlAttributes 不起作用

标签 razor asp.net-mvc-4

我希望这只是一个错误,但我想可能只是我。

@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" })

第一个不再工作了,我需要这个工作。第二个有效但不在乎它是否有效,因为我正在尝试添加更多属性,除非另有说明,否则 object 将无法工作。

最佳答案

没有提供 ActionLink辅助方法接受您指定的参数。唯一采用 IDictionary 类型参数作为 html 属性的参数需要路由值的 RouteValueDictionary。实际上,您当前正在调用一个将您的字典视为匿名对象的函数

尝试

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

或者实现你自己的扩展方法。

关于razor - MVC 4 ActionLink 字典 htmlAttributes 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507737/

相关文章:

c# - 尝试访问 ASP.Net 中捆绑的 slick.css 文件时出现 "forbidden error"

c# - 使用 Ajax Beginform 加载不同的局部 View

c# - 使用 MVC,如何根据 <td> 之一中包含的日期将 <tr> 格式化为特定类?

c# - MVC 绑定(bind)复选框以反转其含义

c# - 如何调用返回引用游标的Oracle存储过程

javascript - knockout 从输入到函数的发送值

c# - 无法加载文件或程序集“System.Web.Helpers,IIS 8 上的错误

IIS Web Farm 上的 session Cookie

使用 bootstrap css 的 MVC 5 Razor Page 中的 HTMl 布局没有显示我想要的方式

c# - 根据 ASP MVC 中的用户输入动态生成 CSS 文件中的 CSS 属性