วิธีระบุแอตทริบิวต์ข้อมูลในมีดโกนเช่น data-externalid =“ 23151” บน @ this.Html.CheckBoxFor (…)


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

ด้วยมีดโกนฉันไม่สามารถระบุค่าสำหรับข้อมูล - แอตทริบิวต์เช่น data-externalid="23521"

มีวิธีทำโดยใช้@this.Html.CheckBoxFor(...)ไหม

คำตอบ:


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

_จะถูกแปลงโดยอัตโนมัติ-ในมาร์กอัปที่เกิด:

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

และนั่นเป็นความจริงสำหรับผู้ช่วยเหลือ Html ทุกคนที่ใช้htmlAttributesวัตถุที่ไม่ระบุตัวตนเป็นอาร์กิวเมนต์ไม่ใช่เฉพาะCheckBoxForผู้ช่วยเท่านั้น


4
ว้าวฉันเห็นการแปลง '_' '-' สับสนจริงๆ ... โดยเฉพาะอย่างยิ่งถ้ามีคนค้นหาสตริงเพื่อค้นหาแอตทริบิวต์ข้อมูลที่กำหนด มีวิธีอื่นอีกไหม
RayLoveless

5
เพียงแค่แปลงสิ่งนี้: new {data_test = "true"}) -> พจนานุกรมใหม่ <string, object> {{"data-test", "true"}});
Dominique Alexandre

1
และหากคุณต้องการค่าที่มาจาก ViewModel ของคุณ new { @class = "myCheckBox", data_externalid = Model.ExternalId }ฉันมาเพื่อขอความช่วยเหลือในหัวข้อนี้และนี่คือสิ่งที่ฉันต้องการ :)
Scott Fraley

กว่า 8 ปีต่อมาคำตอบนี้ช่วยฉันได้อย่างมากมาย ฉันคิดไม่ออกว่าทำไมการเพิ่มแท็ก vue form v-model จึงใช้ไม่ได้ ฉันต้องใช้ v_model = "blah" แทน
Andrew Junior Howard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.