1. ホーム
  2. asp.net-mvc

[解決済み] MVCのHTMLヘルパーで生成されたHTML要素にclass属性を追加するにはどうすればよいですか?

2022-04-14 14:05:12

質問

ASP.NET MVCは、HTMLヘルパーを使用してHTML要素を生成することができます。 @Html.ActionLink() , @Html.BeginForm() といった具合です。

フォームの属性を指定するために 匿名オブジェクト で、そのオブジェクトを(この場合は4番目の) htmlAttributes パラメータを指定する場合 id を指定します。

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})

しかし class 属性は?明らかにこれは機能しません。

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})

この場合、C# のキーワードに遭遇した後、他の何かを期待するため、私のビューが要求されたときにランダムな構文エラーを投げるだけなので、次のようになります。 class .

もやってみた。

new { _class = "myclass"}

そして

new { class_ = "myclass"}

しかし、これらもうまくいかず アンダースコアはダッシュに置き換えられます。 .

HTMLの要素を手で書いたり、フォームを <div class="myClass"> しかし、どのようにすればいいのか知りたいです。

どのように解決するのですか?

匿名型 (または任意の型) を作成し、そのプロパティに 予約キーワード を名前にすると、C#ではプロパティ名の前にアットマークを付けることができます。 @ :

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})

VB.NETの場合 この構文は次のようになります。 ドットを使って実現します。 . のデフォルトの構文であり、その言語では すべて 匿名型 :

Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })