razor에서 데이터 속성을 지정하는 방법 (예 : @ this.Html.CheckBoxFor (…)의 data-externalid =“23151”)


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" />

그리고 이것은 도우미 htmlAttributes뿐만 아니라 익명 개체를 인수로 사용 하는 모든 Html 도우미에게 해당됩니다 CheckBoxFor.


4
와우, '_' '-'변환이 정말 헷갈리는 것을 볼 수 있습니다. 특히 누군가 주어진 데이터 속성을 찾는 문자열 검색을 수행하는 경우. 다른 방법이 있습니까?
RayLoveless 2014 년

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

8 년이 지난 후이 답변은 저를 크게 도왔습니다. 내 vue 양식 v-model 태그 추가가 작동하지 않는 이유를 알 수 없었습니다. 대신 v_model = "blah"를 사용해야했습니다.
Andrew Junior Howard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.