Razor'da veri öznitelikleri nasıl belirtilir, ör. Data-externalid = "23151" @ this.Html.CheckBoxFor (…)


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

Razor ile, veri öznitelikleri için değerler belirleyemiyorum. data-externalid="23521"

Bunu kullanarak yapmanın bir yolu var mı @this.Html.CheckBoxFor(...)?

Yanıtlar:


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

Elde edilen biçimlendirmede _otomatik olarak dönüştürülecektir -:

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

Ve bu, htmlAttributesanonim bir nesneyi yalnızca CheckBoxForyardımcı değil, argüman olarak alan tüm Html yardımcıları için geçerlidir .


4
vay, '_' '-' dönüşümünün gerçekten kafa karıştırıcı olduğunu görebiliyorum ... özellikle birisi belirli bir veri özelliğini arayan bir dize araması yaparsa. Başka bir yolu var mı?
RayLoveless

5
Sadece bunu dönüştürün: new {data_test = "true"}) -> yeni Sözlük <string, object> {{"data-test", "true"}});
Dominique Alexandre

1
Ve değerin ViewModel'inizden gelmesi gerekiyorsa; new { @class = "myCheckBox", data_externalid = Model.ExternalId }Bu konuda yardım aramaya geldim ve ihtiyacım olan buydu. :)
Scott Fraley

8 yıldan fazla bir süre sonra bu cevap bana büyük ölçüde yardımcı oldu. Vue form v-model etiketimi eklememin neden işe yaramayacağını anlayamadım. Onun yerine v_model = "blah" kullanmak zorunda kaldım.
Andrew Junior Howard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.