具有routevalues和htmlattributes的Actionlink - 我做错了什么?

时间:2013-08-05 17:49:09

标签: asp.net-mvc asp.net-mvc-4 actionlink

我试图在我的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属性添加到此操作链接?我做错了什么?

2 个答案:

答案 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"})