次のサンプル:
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
LabelFor
メソッドの 2 番目のオーバーロードを使用しているように見えhtmlAttributes
ます。
要素の Html 属性を含むオブジェクト
「HTML 属性」という用語は何を意味し、このオブジェクトに使用できる構文は何ですか?
次のサンプル:
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
LabelFor
メソッドの 2 番目のオーバーロードを使用しているように見えhtmlAttributes
ます。
要素の Html 属性を含むオブジェクト
「HTML 属性」という用語は何を意味し、このオブジェクトに使用できる構文は何ですか?
HTML 要素は属性を持つことができます。例えば:
<div class="some-css-class" data-foo="bar" />
ここでdiv
の属性はclass
とdata-foo
です。
引数を受け入れる Razor のさまざまな HTML ヘルパー関数は、htmlAttributes
指定されたオブジェクトを属性に変換します。
プロパティが属性名に変換され、その値がそれぞれの属性の値に変換される匿名型を使用して、これを利用できます。
例えば:
new
{
@class = "some-css-class",
data_foo = "bar"
}
これは、上記の属性に変換されます。
プロパティ名のアンダースコアはダッシュに変換されます(@ this.Html.CheckBoxFor (...) の data-externalid="23151" など、かみそりでデータ属性を指定する方法) 。 ( MVC の HTML ヘルパーによって生成された HTML 要素にクラス属性を追加するにはどうすればよいですか? )でエスケープしないと使用できません。@
@class
class
@
を受け入れるオーバーロードIDictionary<string, object> htmlAttributes
もあるため、代わりに辞書を渡すこともできます。
new Dictionary<string, object>
{
{ "class", "some-css-class" },
{ "data-foo", "bar" }
}