2011-02-28 5 views
16

사용자 정의 html 속성 "data-something-something"을 정의했습니다. 내보기에서는 예를 들어 텍스트 상자를 만들려면 HTML 확장 메서드를 사용합니다. 매개 변수 중 하나는 익명 object HtmlAttributes입니다. 이 값을 전달하고 싶습니다 : new { data-something-something = "value" }. 그러나 data-something-something은 하이픈 때문에 .NET에서 속성 이름으로 인식되지 않습니다.ASP.NET MVC에서 하이픈을 포함하는 html 속성 설정 문제

지금은 dataSomethingSomething으로 변경되었지만 HTML 5 표준 (즉, 'data-'접두어)에 따라 사용자 정의 속성을 정의하고 싶습니다.

클래스 속성에서 new { class = "class-name"}을 시도 할 때 비슷한 문제가 발생했습니다. 이 경우 나는 접두어로 '@'기호 (예 : new { @class = "class-name"})를 붙이기 위해 접두사 class을 붙일 수 있음을 알게되었습니다. 이 시나리오에 대한 해결책이 있기 때문에 나는 현재 문제에 대한 해결책이있을 수 있기를 바랐다. ('@'접두어 앞에는 작동하지 않았다.)

미리 감사드립니다.

답변

29

가 자동으로 표준 HTML 헬퍼에 의해 대시로 변환해야 밑줄을 사용해보십시오 여기에서 답을 찾을 수 있습니다 :

new { data_something_something = "value" } 
+0

Neato! 나는 이와 같은 것을 기대하고있었습니다. –

+0

@Matthijs Wessels, 맞춤 HTML 도우미를 사용하고 있습니까? 그렇다면 도우미 코드와 사용법을 보여주십시오. 이것은 내장 헬퍼와 확실히 작동합니다. 그것을 시도하십시오 :'@ Html.TextBoxFor (x => x.Foo, new {data_something_something = "value"})'. –

+0

내장 헬퍼 만 사용합니다. 이미 그것을 시도하고 그것은 일했다 :) –

2
+0

흠을, 당신은 중복으로 내 질문을 분류 할 수 . 나는 찾았지만 찾을 수 없었다. HTML/CSS에서 '-', '_'또는 낙타의 사용에 대한 논의가있는 곳에서 모두 발견되었습니다. Dictionary 접근법을 생각하지 않으면 꽤 어리 석다. –

관련 문제