【问题标题】:How do I add a class to an @Html.ActionLink?如何将类添加到@Html.ActionLink?
【发布时间】:2013-09-09 17:00:39
【问题描述】:

我有两个@Html.ActionLink's,我想让它们看起来像按钮。我可以通过CSS 实现这一点,但前提是我使用actionlink 的#ID 来应用CSS。我想为操作链接分配一个类,但是当我使用下面的代码时,我收到一个错误,提示我缺少“}”。

 @Html.ActionLink("Print PO", "PoReport", new { id = 51970}, 
                 new { id = "PoPrint"} , new { class = "PoClass"})

这是我正在应用的样式:

<style>
 #PoPrint 
{
 border: 4px outset;
 padding: 2px;
 text-decoration: none;
 background-color:lightskyblue;
}
</style>

这行得通,我想我可以将另一个#ID 添加到样式中,但想将该样式应用于类。

【问题讨论】:

标签: css asp.net-mvc razor


【解决方案1】:

问题在于 class 是 C# 中的保留字。您可以通过使用 @ 符号将其转义来指定要使用名称“类”作为属性名称,如下所示:

 @Html.ActionLink("Print PO", "PoReport", new { id = 51970}, new { id = "PoPrint", @class = "PoClass"})

【讨论】:

  • Html.ActionLink 的参数不是太多了吗? @class不应该和前一个对象中的id结合吗?
  • @chris.house,我曾尝试过该解决方案(来自上述可能的重复帖子)但收到此错误:CS1928: 'System.Web.Mvc.HtmlHelper' does not contain a 'ActionLink' 的定义和最佳扩展方法重载'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string, string, string, object, object)' 有一些无效参数
  • @AlanFisher - 试试@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, new { id = "PoPrint", @class = "PoClass"})
  • 正如 jmoerdyk 指出的那样,我相信您的论点是不正确的。我不确定您要在第一个和第二个匿名类型(id = 51970 和 id = PoPrint)中传递什么。如果您尝试将链接的 id 设置为 PoPrint,那么您应该在末尾添加一个匿名,如下所示:new {id = "PoPrint", @class= "PoClass"}
【解决方案2】:

这样做new { @class = "PoClass"} 您需要 @ 来表示 class 等关键字

【讨论】:

    【解决方案3】:

    您必须使用@ 字符,因为class 是C# 中的关键字。这是 MSDN 文档的链接:http://msdn.microsoft.com/en-us/library/dd492124(v=vs.108).aspx

    @Html.ActionLink("Link Text", "ActionName", 
             new { controller = "MyController", id = 1 }, 
             new { @class = "my-class" })
    

    【讨论】:

    • 如果我想要一个类和一个 id 怎么办?因为你答案中的 id 可能是一个参数吧?
    • 好的,我已经找到答案了:new { @class = "my-class", id=4 }
    • 这对我有用,但我讨厌这样做。这比仅仅使用好的 ole &lt;a href='foo.html'&gt;click&lt;/a&gt; 要多得多。
    【解决方案4】:

    你必须指明动作名称、控制器和url参数(本例中为空)

    @Html.ActionLink("Link Name", 
    "ActionName",
    "ControllerName",
    null,
    new { @class = "your css class" }
    )
    

    【讨论】:

      【解决方案5】:

      当我使用 null 时它起作用了

      @Html.ActionLink("Add User", "Create",null, new { @class= "btn btn-primary" })

      “添加用户”是按钮文本

      “创建”是 actionName

      new { @class= "btn btn-primary" } CSS 使用的引导类

      【讨论】:

        猜你喜欢
        • 2012-05-19
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 2020-12-11
        • 1970-01-01
        相关资源
        最近更新 更多