1

エディター テンプレートを変更せずに、他の HTML 属性をHtml.EditorForヘルパー エクステンションに渡すことはできますか?

この例は、渡されるクラスを示しています。

@Html.EditorFor(model => model.information, new { htmlAttributes = new { @class = "form-control" }})

多くの潜在的なシナリオがありますが、入力をdata-myvar="value". これを試すと、コンパイラ エラーが発生しinvalid anonymous type declaratoryます。

@Html.EditorFor(model => model.information, new { htmlAttributes = new { @data-myvar="value" }})

さらに、可能であれば、クラスに加えてこれを渡すことはできますか? つまり、の配列を渡しhtmlattributesます。リリース ノート以外のドキュメントを見つけるのに苦労しています。

ジョン・ギャラウェイの記事

4

1 に答える 1

3

ただし、.NET が匿名型を処理する方法のため (Mark に感謝)、ダッシュをアンダースコアに変更する必要があります。また、@シンボルは、Html 属性辞書でクラスを宣言する場合にのみ必要です (クラスは予約語であるため)。data-要素を宣言するときは、それを省略できます。

@Html.EditorFor(model => model.information, 
      new { htmlAttributes = new { data_myvar="value" }})

これがヘルパーによって解析されると、ダッシュが実際に HTML にレンダリングされます。

<input type="text" id="information" name="information" data-myvar="value"/>

複数の属性を渡すには、値をカンマで区切ります

@Html.EditorFor(model => model.information, 
      new { htmlAttributes = new { data_myvar="value", data_othervar = "something" }})
于 2014-03-17T20:59:50.830 に答える