developer tip

asp.net mvc를 사용하여 하이픈으로 연결된 HTML 속성

optionbox 2020. 8. 13. 08:16
반응형

asp.net mvc를 사용하여 하이픈으로 연결된 HTML 속성


다음을 사용하는 대신 하이픈 속성이있는 요소를 만들 때 더 좋은 구문이 있습니까?

<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>

제안 된 표준 HTML 5 및 WIA ARIA 에 대한 HTML 사양을 살펴보면 HTML 속성의 하이픈이 일종의 단순한 이름 간격으로 더 일반적으로 사용될 계획 인 것 같습니다.

예를 들어 HTML 5는 사용자 지정 속성에 접두사가 붙는 것을 제안 data-하고 WIA ARIA는 aria-모든 WIA ARIA 속성에 접두사를 사용 합니다.

ASP.NET MVC에서 HTML 도우미를 사용하는 <%= Html.TextBox("name", value, new { attribute = attributeValue }) %>경우 익명 개체는 사전으로 변환됩니다.

불행히도 C #에서는 이름에 하이픈을 지원하지 않으므로 유일한 대안은 사전을 만드는 것입니다. 구문이 매우 장황하고 전체 확장을 다시 작성하지 않고도 ASP.NET MVC의 HTML 확장 기능을 변경하는 더 좋은 대안이나 간단한 방법을 본 사람이 있습니까?


데이터 속성 이름에 밑줄을 사용하면 마술처럼 처리하여 하이픈으로 변환합니다. 밑줄은 html 속성 이름에 유효하지 않으므로 밑줄 대신 하이픈을 원한다는 것을 알고 있습니다.

<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>

ActionLink htmlAttributes에 제공된 답변 은 하이픈 대신 밑줄을 사용하도록 제안합니다. MVC.Net은 페이지를 브라우저로 보낼 때 밑줄 대신 하이픈을 내 보냅니다.

참고 URL : https://stackoverflow.com/questions/2897733/hyphenated-html-attributes-with-asp-net-mvc

반응형