[asp.net-mvc] MVC의 HTML 헬퍼가 생성 한 HTML 요소에 클래스 속성을 추가하려면 어떻게해야합니까?

ASP.NET MVC 예를 들어, HTML 도우미를 사용하여 HTML 요소를 생성 할 수 있습니다 @Html.ActionLink(), @Html.BeginForm()등등합니다.

익명 객체 를 생성하여 양식 속성을 지정할 수 있으며 요소에 대해 ( 이 경우 네 번째) htmlAttributes매개 변수 에 해당 객체를 전달할 수 있습니다 id.

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})

그러나 class속성은 어떻습니까? 분명히 이것은 작동하지 않습니다.

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})

C # 키워드를 만난 후 다른 것을 기대하기 때문에 뷰가 요청되면 임의의 구문 오류가 발생합니다 class.

나는 또한 시도했다 :

new { _class = "myclass"}

new { class_ = "myclass"}

그러나 밑줄이 대시로 바뀌어도 작동하지 않았습니다 .

HTML 요소를 직접 작성하거나 양식을 랩 안에 <div class="myClass">넣을 수 있다는 것을 알고 있지만 여전히 수행 방법을 알고 싶습니다.



답변

C #에서 예약 키워드 를 이름 으로하는 속성을 사용하여 익명 형식 (또는 모든 형식)을 만들려면 속성 이름 앞에 at 기호를 추가 할 수 있습니다 @.

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})

VB.NET의 경우이 구문은 도트를 사용하여 수행 .되며, 해당 언어에서 모든 익명 유형의 기본 구문입니다 .

Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })


답변

CSS 개발의 현재 모범 사례는 웹 사이트 전체에 가능한 한 광범위하게 적용 할 수있는 수정자를 사용하여보다 일반적인 선택기를 만드는 것입니다. 개별 페이지 요소에 별도의 스타일을 정의하지 않으려 고합니다.

<form/>요소 에서 CSS 클래스의 목적이 양식 내 요소의 스타일을 제어하는 것이라면 <fieldset/>ASP.NET MVC에 의해 생성 된 웹 페이지에서 기본적으로 모든 양식을 캡슐화 하는 기존 요소를 클래스 속성에 추가 할 수 있습니다 . 폼의 CSS 클래스는 거의 필요하지 않습니다.


답변