【问题标题】:Actionlink with both routevalues and htmlattributes - what am I doing wrong?带有 routevalues 和 htmlattributes 的 Actionlink - 我做错了什么?
【发布时间】:2013-08-06 12:44:12
【问题描述】:

我试图在我的ActionLink 上同时拥有一些路由值和 html 属性。

所以,我有以下代码。前三个参数是文本、动作名称和控制器。然后我添加路由值,然后尝试添加 HTML 属性。

@Html.ActionLink("What is this", "Pages", "Root", new { @slug = "what-is-this" },new{@class="dropdown-toggle", @data-toggle="dropdown"})

当我运行该网站时,我收到一条错误消息,指出带有此操作链接的视图,它给出了 External component has thrown an exception.

所以,我想我的问题是:如何将 html 属性添加到此操作链接?我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    您不能使用@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)时才使用它。

    【讨论】:

      【解决方案2】:

      问题出在@data-toggle

      名称中不能有破折号。如果需要在客户端渲染“-”,可以使用“_”,MVC会渲染“-”

      @Html.ActionLink("What is this", "Pages", "Root", new { @slug = "what-is-this" },new{@class="dropdown-toggle", @data_toggle="dropdown"})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 2012-02-17
        • 2011-12-22
        • 1970-01-01
        相关资源
        最近更新 更多