我可以在MVC3中将类添加到HTML.ActionLink吗?


83

我有这段代码,想在链接中添加一个类。在MVC3中可以这样做吗?

Html.ActionLink("Create New", "Create")

是“公开类MyClass {...}”类中的类,还是“ <a class='form-control' href='/MyController/MyAction'> Create New </a>”中的类?
LongChalk

Answers:


150

是的,您可以添加另一个参数来表示CSS类的对象:

Html.ActionLink("Create New", "Create", CONTROLLERNAME, null, new { @class= "yourCSSclass"} )

可以翻译为:

Html.ActionLink(link text, action name, controller name, route values object, html attributes object)

编辑:

要添加自定义样式,请使用以下命令:

Html.ActionLink(
"Create New",
"Create",
CONTROLLERNAME,
null,
new { @class= "yourCSSclass", @style= "width:100px; color: red;" }
)

感谢您的出色回答。但是现在我很困惑,因为我看到三种不同的方式都有不同的参数。有人可以给我一些最好的想法吗?非常感谢。
Sango,

1
@Sango:第一个参数是将显示的实际链接文本。第二个参数是动作的名称。第三是控制器的名称。第四个是包含路由值的对象(即,您需要传递给路由/动作的对象)-在这种情况下,您不需要此对象,因此只需将其设置为“ null”即可。最后一个是htmlAttributes对象,该对象具有“类”之类的属性,该属性将提供的字符串作为CSS类添加到您的链接中。您可以在已经提到的文档中看到更多信息。只是请注意,狂想曲的答案由于以下原因而
无法起作用。– Damb

1
没有“最好的”。它们都是重载,它们指向用于呈现achor标签的相同基础代码。选择哪种重载取决于URL中需要的内容。
RPM1984

1
非常感谢大家。我现在使代码正常工作,看起来很棒。
Sango,

18
@Html.ActionLink("ClickMe",  // link text
                 "Index", // action name
                 "Home",  // controller 
                 new { id = 2131 }, // (optional) route values
                 new { @class = "someClass" }) // html attributes

@RPM-快速问题。我可以为此链接指定宽度之类的东西吗?我的按钮文字比通常的宽,我希望能够修改宽度。
Sango,

@Sango:检查我的答案以了解如何在链接中添加自定义样式。
2011年

我试过了,但是没有用。它只是在地址路由中指定一个名为width的参数,其值为100px :-(
Sango

@Sango:看来我的回答对您来说是看不见的。没关系。自从开始以来就一直试图帮助提供有效的答案:)
Damb

顺便说一句@style是不好的做法。IMO与使用一样糟糕<div style="color:red;">。使用CSS类。
RPM1984

7
Html.ActionLink("Create New", "Create", null, htmlAttributes: new { @class = "className" })

5

根据文档,这应该可以解决问题:

Html.ActionLink("LinkText", "Action", "Controller", new { }, new {@class="css class"})

编辑:感谢您注意到Dampe,我更新了代码示例。


3
-1,这不起作用。您已获得控制器名称参数和动作名称参数的切换顺序。您可以在我的答案中看到正确的顺序。
2011年

4

您可以使用带有htmlAttributes参数的ActionLink重载来将类添加到生成的元素中:

Html.ActionLink("Create New", "Create", new {}, new { @class = cssClass });
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.