2013-04-02 1 views

답변

0

도우미를 사용해야하는 방식으로 사용하는 한, 디자이너가 사용법을 배우는 것은 상당히 사소한 일입니다. 물건을 단순하게 유지하는 것이 목표라는 것을 기억하십시오. 물건을 더 복잡하게 만들면 올바르게 사용되지 않는다는 것을 의미합니다.

성능 차이가 나는 성능에 대한 답변이없는

+0

예, @ Html.LabelFor(), @ Html.TextBoxFor() 메소드를 참조합니다. – TiagoBrenck

+0

정확합니다. 이 도우미는보기를 체계화하고 복잡하고 쉽게 잊어 버릴 수있는 HTML 코드를 작성하는 것을 피하는 간단한 방법을 제공합니다. – equisde

+2

예. 개발자 사이클은 CPU 사이클보다 비용이 많이 든다. –

0

무시할하지만 난 당신의 마지막 질문에 대한 답변을해야합니까.

HtmlHelpers를 사용하지 않는 경우가 있습니까?

우리 프로젝트에서 정적 메서드 (예 : HTML 도우미 확장 메서드)는 우리가 원하는 방식으로 단위 테스트를하기가 어렵 기 때문에 HtmlHelpers를 사용하지 않는 경향이 있습니다.

HTML 도우미 (확장 메서드)를 사용하는 대신 뷰에 대한 사용자 지정 기본 클래스가 있습니다. 이 기본 클래스는 헬퍼 서비스 (Uri, Html, DataEndpoint)를 노출하고 테스트 할 수 있도록 유지합니다.

1

양식을 작성할 때 헬퍼 메서드를 사용하는 것이 좋습니다. 나는 이 아닌을 Html.TextboxFor()를 사용하여, 편집자에게 Html.EditorFor()를 사용하는 시간의 99 %를 선호합니다. 그것은 내 모든 필드가 올바른 이름과 ID의의를 확인합니다 , 그것은하지 않고, 클라이언트 검증의 사용을 가능하게이 나에게 많이 제공

@Html.LabelFor(model=>model.SomeField) 
@Html.EditorFor(model=>model.SomeField) 
@Html.ValidationMessageFor(model=>model.SomeField) 

:

그래서,이 같은 양식을 구축 많은 추가 마크 업을 작성해야합니다.

Html.TextboxFor() 대신 Html.EditorFor() - 메서드를 사용하면 올바른 필드에 적합한 편집기를 사용할 수 있습니다. 이메일 필드는 type = "email"을 사용해야하며 날짜는 type = "date"를 사용해야합니다. type = "text"가 아닙니다. EditorFor()를 사용하면 TextboxFor() 또는 일반 마크 업을 사용하는 템플릿을 만들 수 있습니다. 이 방법으로 이메일 필드가있는 모든 모델은 동일한 편집기를 가져올 것이고 모든 날짜는 같은 날짜 표시기를 갖게됩니다.

즉, EditorForModel()을 사용하지 않는 경우 항상 LabelFor(), EditorFor() 및 ValidationMessageFor()를 사용하십시오. 특별한 마크 업이 필요하면 템플릿을 사용하십시오.

관련 문제