MVC3のHTML.ActionLinkにクラスを追加できますか?


83

私はこのコードを持っており、リンクにクラスを追加したいと思います。MVC3でこれを行うことは可能ですか?

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

「publicclassMyClass {...}」のようなクラス、または「<a class='form-control'href='/MyController/MyAction'> Create New </a>」のようなクラス?
LongChalk

回答:


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;" }
)

素晴らしい答えをありがとう。しかし、これを行う3つの異なる方法があり、すべてが異なるパラメーターを持っているので、今は混乱しています。誰かが私に最善かもしれないいくつかのアイデアを与えることができますか?どうもありがとうございます。
サンゴ

1
@Sango:最初のパラメーターは、表示される実際のリンクテキストです。2番目のパラメーターはアクションの名前です。3番目はコントローラーの名前です。4番目は、ルート値を含むオブジェクト(つまり、ルート/アクションに渡す必要のあるオブジェクト)です。この場合、これは必要ないため、「null」にします。そして最後のものは、提供された文字列をcssクラスとしてリンクに追加する「class」のようなプロパティを取得したhtmlAttributesオブジェクトです。詳細については、すでに説明したドキュメントをご覧ください。ただ、ノート、そのための...ラプソディdoesntの仕事からの回答
Damb

1
「最高」はありません。これらはすべてオーバーロードであり、achorタグをレンダリングするための同じ基になるコードを指します。どのオーバーロードを選択するかは、URLに何が必要かによって異なります。
RPM1984

1
みなさん、ありがとうございました。これでコードが機能し、見栄えが良くなりました。
サンゴ

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

@ RPM-簡単な質問。このリンクで幅などを異なるものに指定できますか?ボタンのテキストが通常よりも幅が広いので、幅を変更できるようにしたいと思います。
サンゴ

@Sango:私の答えをチェックして、リンクにカスタムスタイルを追加する方法を確認してください。
ダム

私はそれを試しましたが、うまくいきません。アドレスルートでwidthというパラメータを100pxの値で指定するだけです:
Sango

@サンゴ:私の答えはあなたには見えないようです。じゃあ心配しないで。始めてから答えを出すのを手伝おうとするのはこれだけです:)
ダム

ところで使用すること@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、これは機能しません。コントローラ名パラメータとアクション名パラメータの順序が入れ替わりました。あなたは私の答えで正しい順序を見ることができます。
ダム

4

htmlAttributesパラメーターを受け取るActionLinkオーバーロードを使用して、生成された要素にクラスを追加できます。

Html.ActionLink("Create New", "Create", new {}, new { @class = cssClass });
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.