2013-08-04 2 views
38

이 세 가지 기능은 Razor보기 엔진에 있으며 유사한 결과를 얻는 데 사용할 수 있습니다. 결국 세 명 모두 HTML 코드 조각 만 렌더링하지만 정의하고 사용하는 방법은 상당히 다릅니다. 나는 그것을 알고있다 :Html 헬퍼, 면도기 헬퍼 또는 부분 뷰는 언제 사용해야합니까?

Html 헬퍼는 HtmlHelper 클래스의 확장 메서드로 만들어졌다. 자주 TagBuilder 클래스를 사용하여 HTML을 생성하고 항상 IHtmlString을 반환해야합니다.

면도기 도우미 (@helper 메서드)는 로컬로 (동일한 면도기 파일에서) 또는 전역으로 (App_Code 디렉터리에서) 정의 할 수 있습니다. 이들은 Razor 파일에서만 독점적으로 재사용 할 수있는 작은 HTML 코드 조각입니다.

마지막으로 부분보기는 @Html.Partial 도우미를 사용하여 다른보기 파일에 포함될 수있는 일반보기 파일입니다.

내 질문은 : 이러한 기능 각각에 대한 특정 시나리오는

있습니까? 아니면 같은 결과를 얻기 위해 다른 맛으로 나옵니까?

답변

57

HTML 도우미은 재사용이 가능한 구성 요소입니다. 예 : WebGrid, Pager 등. 이들은 어셈블리로 배포되며 Razor에 의존하지 않습니다. 경우이 옵션을 선택 :

  • 기능 당신은 사람들이 그것을 수정하지 않으려는
  • 모든 응용 프로그램에 진정으로 재사용 및 적용 버전으로 원하는, 그것은

파셜 뷰는하는 방법입니다 큰 뷰를 작은 부분으로 분할하여 관리하기 쉽도록합니다. 또한 응용 프로그램과 관련된 재사용에 유용합니다. 이러한 뷰 엔진이 뷰 엔진에 위치하므로 동일한 부분을 다른 위치 (예 :보기/공유)에 지정할 수 있으므로 컨트롤러, 영역 또는 디스플레이 모드별로 사용자 정의 할 수 있습니다.

  • 가가 동일한 템플릿을 여러 번 실행하는 방법입니다 컨트롤러, 지역 또는 표시 모드 당
  • 현지 도우미를 사용자 정의 할

    • 기능은 응용 프로그램 특정하지 않고, 다음과 같은 경우에이 옵션을 선택 너 자신을 반복해야 해. 심도있는 중첩을 방지하기 위해 뷰를 부분으로 나누기 위해 사용할 수도 있지만 모든 것을 동일한 파일에 유지합니다.

      • 기능은 뷰 특정 (을 App_Code에서) 응용 프로그램 도우미 지역 헬퍼 및 HTML 헬퍼 사이의 혼합이다

      입니다 다음과 같은 경우에이 옵션을 선택합니다.이 경우 선택 : 이상

      • 선호 면도기를 TagBuilder
      • 대신 @Html.Partial(name)
      의 형태 보증 된 메소드 호출 구문을 선호하는 대신 어셈블리 파일을 배포 신경 쓰지 마