如何在剃刀中指定数据属性,例如@ this.Html.CheckBoxFor(…)上的data-externalid =“ 23151”


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

使用剃刀,我无法为数据属性指定值,例如 data-externalid="23521"

有没有办法做到这一点@this.Html.CheckBoxFor(...)

Answers:


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

_将自动转换到-在所得的标记:

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

对于所有以htmlAttributes匿名对象作为参数的HTML帮助器而言,不仅如此CheckBoxFor


4
哇,我可以看到'_''-'转换确实令人困惑……尤其是当有人进行字符串搜索以寻找给定的数据属性时。还有另一种方法吗?
RayLoveless

5
只需变换一下:new {data_test =“ true”})-> new Dictionary <string,object> {{“ data-test”,“ true”}});
Dominique Alexandre

1
而且,如果您需要从ViewModel中获取值;new { @class = "myCheckBox", data_externalid = Model.ExternalId }我来寻找有关此主题的帮助,而这正是我所需要的。:)
Scott Fraley

八年多了,这个答案为我提供了极大的帮助。我无法弄清楚为什么添加vue表单v-model标签不起作用。我不得不改用v_model =“ blah”。
Andrew Junior Howard
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.