かみそりでデータ属性を指定する方法、たとえば@ this.Html.CheckBoxFor(…)のdata-externalid =“ 23151”


121
@this.Html.CheckBoxFor(m => m.MyModel.MyBoolProperty, new { @class="myCheckBox", extraAttr="23521"})

かみそりでは、次のようなdata-属性の値を指定できません data-externalid="23521"

これを使用してこれを行う方法はあり@this.Html.CheckBoxFor(...)ますか?

回答:


267
@Html.CheckBoxFor(
    m => m.MyModel.MyBoolProperty, 
    new { 
        @class = "myCheckBox", 
        data_externalid = "23521"
    }
)

_自動的に変換されます-結果のマークアップに:

<input type="checkbox" name="MyModel.MyBoolProperty" data-externalid="23521" class="myCheckBox" />

そしてそれhtmlAttributesは、CheckBoxForヘルパーだけでなく、匿名オブジェクトを引数として取るすべてのHtmlヘルパーにも当てはまります。


4
うわー、私は '_' '-'変換が本当に混乱しているのを見ることができます...特に誰かが与えられたデータ属性を探す文字列検索をする場合。別の方法はありますか?
RayLoveless 2014年

5
これを変換するだけです:new {data_test = "true"})-> new Dictionary <string、object> {{"data-test"、 "true"}});
ドミニクアレクサンドル

1
また、ViewModelから取得する値が必要な場合。new { @class = "myCheckBox", data_externalid = Model.ExternalId }私はこのトピックについて助けを求めてきましたが、これが私が必要としていたことです。:)
スコットフレーリー2017年

8年以上後、この回答は私を大いに助けてくれました。Vueフォームのv-modelタグを追加できない理由を理解できませんでした。代わりにv_model = "blah"を使用する必要がありました。
アンドリュージュニアハワード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.