Как указать атрибуты данных в бритве, например, data-externalid = "23151" на @this.Html.CheckBoxFor(...)

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

С бритвой я не могу указать значения для атрибутов данных, таких как data-externalid="23521"

Есть ли способ сделать это, используя @this.Html.CheckBoxFor(...)?

Ответ 1

@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.