2011-10-06 8 views
3

MVC3의 기본 생성 된 뷰의 장점에 대해 논의하고 있습니다. 이것은 모델 필드를 이와 같이 감 쌉니다. mvc3 생성 된 뷰의 요소 및 클래스 구조에 대한 이유는 무엇입니까

<div class="editor-label"> 
     @Html.LabelFor(model => model.SenderMessage) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SenderMessage) 
     @Html.ValidationMessageFor(model => model.SenderMessage) 
    </div> 

동료

편집기 - 라벨 사업부가 안 말한다. label 요소는 의미 론적 의미가 충분합니다. 그는이 같은 그것을보고 싶어 : 그것은 나에게 달려 있다면, 아마이 같은 방향으로 기울어 것

<p> 
     @Html.LabelFor(model => model.SenderMessage) 
     @Html.EditorFor(model => model.SenderMessage) 
     @Html.ValidationMessageFor(model => model.SenderMessage) 
    </p> 

. (예, 나는 T4와 함께 사용자 정의 할 수 있습니다 알고 있습니다.)

<div class="model-field"> 
    <div class="editor-label"> 
     @Html.LabelFor(model => model.SenderMessage) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SenderMessage) 
     @Html.ValidationMessageFor(model => model.SenderMessage) 
    </div> 
</div> 

왜 두 번째 두 가지 방법보다 첫 번째 방법은 더 나은 무엇입니까? DIV에 그것을 할 수있는 가장 의미 상 적절한 방법처럼 보인다해서

답변

2

MVC3과 같은 프레임 워크는 모든 사람에게 모두가되도록 노력합니다. 결과적으로 생성되는 코드는 종종 지나치게 엔지니어링 된 것으로 끝납니다.

이것은 거의 모든 프레임 워크, CMS 및 사이트 디자이너 응용 프로그램에 적용됩니다. 웹 사이트의 대다수에 대해 생성 된 코드를 살펴보면 손으로 직접 작성하지 않고 코드 생성기로 작성 되었기 때문에 구조화 된 HTML이 표시됩니다.

많은 경우 템플릿이나 엔진을 변경하여 더 깨끗한 코드를 생성 할 수 있지만 일반적으로 생성자가 코드 작성을 기본으로하는 데는 충분한 이유가 있습니다.

예를 들어 레이블 및 필드에 영리한 jQuery 효과를 수행하는 사이트를 생각해보십시오. 일부 효과는 배치 할 때 <div> 요소를 배치하면 훨씬 쉽게 얻을 수 있습니다.

프레임 워크 설계자는 최종 사용자 (즉, 개발자)가 다양한 방식으로 작업 할 수있는 유연성이 가장 뛰어나므로 신중한 접근 방식을 취하여이를 과도하게 구조화했습니다. 청결한 HTML은 순수한 관점에서 더 좋을 수도 있지만 추가 마크 업의 영향은 낮으며 추가 된 유연성이 분명 승리합니다.

1

나는

<fieldset> 
    <div class="model-field"> 
     <label /> 
     <input /> 
    </div> 
    <div class="model-field"> 
     <label /> 
     <input /> 
    </div> 
    <div class="model-field"> 
     <label /> 
     <input /> 
    </div> 
</fieldset> 

을 좋아합니다.

양식 항목은 <ul> 또는 <dl> 목록으로 표시해야한다고 주장하지만 동의 할 지 확신 할 수 없습니다. 특히 CSS가 비활성화 된 경우

또한 <p>의 사용에 너무 열중하지 않습니다.