3

次のサンプル:

@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })

LabelForメソッドの 2 番目のオーバーロードを使用しているように見えhtmlAttributesます。

要素の Html 属性を含むオブジェクト

「HTML 属性」という用語は何を意味し、このオブジェクトに使用できる構文は何ですか?

4

2 に答える 2

9

HTML 要素は属性を持つことができます。例えば:

<div class="some-css-class" data-foo="bar" />

ここでdivの属性はclassdata-fooです。

引数を受け入れる Razor のさまざまな HTML ヘルパー関数は、htmlAttributes指定されたオブジェクトを属性に変換します。

プロパティが属性名に変換され、その値がそれぞれの属性の値に変換される匿名型を使用して、これを利用できます。

例えば:

new
{
    @class = "some-css-class",
    data_foo = "bar"
}

これは、上記の属性に変換されます。

プロパティ名のアンダースコアはダッシュに変換されます(@ this.Html.CheckBoxFor (...) の data-externalid="23151" など、かみそりでデータ属性を指定する方法) 。 ( MVC の HTML ヘルパーによって生成された HTML 要素にクラス属性を追加するにはどうすればよいですか? )でエスケープしないと使用できません。@@classclass@

を受け入れるオーバーロードIDictionary<string, object> htmlAttributesもあるため、代わりに辞書を渡すこともできます。

new Dictionary<string, object>
{
    { "class", "some-css-class" },
    { "data-foo", "bar" }
}
于 2016-06-02T10:22:11.290 に答える