我试图在我的ActionLink
上都有一些路由值和html属性。
所以,我有以下代码。前三个参数是文本,动作名称和控制器。然后我添加路由值,然后尝试添加HTML属性。
@Html.ActionLink("What is this", "Pages", "Root", new { @slug = "what-is-this" },new{@class="dropdown-toggle", @data-toggle="dropdown"})
当我运行网站时,我收到一条错误消息,说明使用此actionlink的视图,它会显示External component has thrown an exception.
所以,我想我的问题是:如何将html属性添加到此操作链接?我做错了什么?
答案 0 :(得分:5)
您不能使用@data-toogle
,而是需要使用下划线。所以你链接应该是这样的:
@Html.ActionLink("What is this", "Pages", "Root", new { slug = "what-is-this" },new{@class="dropdown-toggle", data_toggle="dropdown"})
其余的将由MVC完成,您的data_toggle
将转换为data-toggle
。此外,无需对每个项目使用@
。只有在使用保留的C#关键字时才使用它,例如class
。
答案 1 :(得分:4)
问题出在@data-toggle
。
你的名字中不能有破折号。如果你需要在客户端上呈现“ - ”,你可以使用“_”和MVC将呈现“ - ”
@Html.ActionLink("What is this", "Pages", "Root", new { @slug = "what-is-this" },new{@class="dropdown-toggle", @data_toggle="dropdown"})