2011-09-25 2 views
4

면도기 레이아웃 뷰에서 함수 또는 도우미를 선언하고 하위 면도기 뷰에서 해당 함수를 사용할 수 있습니까? 내 구조는 다음과 같습니다@Functions parent로부터의 상속 기능 면도기 레이아웃

_layout.cshtml -> index.cshtml

index.cshtml는 레이아웃으로 _layout.cshtml 사용

. 이것은 기본 구조입니다.

공통 기능/도우미를 _layout.cshtml에 배치하고 index.cshtml 및 _layout.cshtml을 사용하는 다른 모든보기에서 참조 할 수 있기를 원합니다. 내가 놓친 것을 제외하고는 상자 밖에서 작동하지 않습니다.

알고 있습니다. 컴파일 된 AppHelpers 또는 HtmlHelpers를 사용해야합니다. 그러나 _layout.cshtml 파일에서 직접 선택한 함수/도우미를 조정할 수있는 큰 편리함을 예견 할 수 있습니다.

감사합니다.

답변

7

아니요. 불가능합니다. @functions은 현재보기 내부에서만 볼 수 있습니다.

@helperApp_Code 폴더 안에 넣고 모든보기에서 다시 사용할 수 있습니다.

@MyHelpers.Foo() 

하지만 컴파일 된 헬퍼를 추천 할 것입니다 : 어떤 관점에서

@helper Foo() 
{ 
    ... 
} 

다음 : 예를 들어

당신은 ~/App_Code/MyHelpers.cshtml을 정의합니다. 그들은 유닛 테스트에 익숙하며 뷰 엔진에 무관심하며 내일 마이크로 소프트가 새로운 블레이드 뷰 엔진을 발표 할 때이를 사용하기 위해 할 일은 0 개입니다. 반면에 Razor와 관련된 코드 인 @functions@helper을 코딩하면 그들. 아마 당신에 대한 걱정은 아니지만 언급 할 가치가 있습니다.

+0

대단히 감사합니다. 감사합니다. –