【问题标题】:Adding class to ActionLink [duplicate]将类添加到 ActionLink [重复]
【发布时间】:2018-10-17 16:51:12
【问题描述】:

我有登录按钮的操作链接

@Html.ActionLink("Login", "Login", "Account")

它完美地将用户重定向到Account控制器Login操作。 但是当我试图添加类来设置这个按钮的样式时:

@Html.ActionLink("Login", "Login", "Account", new { @class = "btn btn-primary btn-lg" }) 

它确实有风格并且看起来不错,但它会丢失控制器信息并将用户重定向到Home/Login,而不是Account/Login

【问题讨论】:

  • 这个怎么样? ,null, new {@class = "..."}
  • 不明白,能不能写全行?
  • 我已经提供了答案。请看一下。

标签: c# css asp.net-mvc controller actionlink


【解决方案1】:

你需要在你的样式前添加一个空参数,因为它引用了routeValues

@Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" }) 

看看它的文档Here

【讨论】:

  • 谢谢,我明白了
【解决方案2】:

ActionLink 助手中的第四个参数指的是routeValues 而不是htmlAttributes,这解释了为什么您被重定向到另一个Login 操作。

您需要使用 ActionLink 和 5 个这样的重载:

@Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" })

【讨论】:

    【解决方案3】:

    ControllerName后面有object routeValues参数,没有ActionLink(link text, action name, controller name, htmlAttributes)这样的重载,试试这个:

    @Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" }) 
    

    【讨论】:

      【解决方案4】:

      而不是使用这个:

      @Html.ActionLink("Login", "Login", "Account", new { @class = "btn btn-primary btn-lg" }) 
      

      使用:

      @Html.ActionLink("Login", "Login", "Account", null,new { @class = "btn btn-primary btn-lg" }) 
      

      在 5 个重载方法中,您将 htmlAttributes 设置为 routeValues。 这就是为什么它不像你那样表现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多