2017-10-06 5 views
0

이것은 다소 이상합니다. 나는 쉬운 수정 방법이 있다고 확신합니다."Loop over children"하지만 "IntelliSense"가 사라졌습니다

저는 ModelsBuilder를 Dll로 설정하고 @Model.Content.PROPERTY과 같은 작업을 수행하여 제 백 오피스에 쓴 속성을 얻을 수 있습니다. 이것은 잘 작동하지만, 모든 아이들을 반복하여 그 표기법을 사용하고 싶다면 어떻게해야할까요? 다음은 예입니다 :

내 문서 유형 구조는 다음과 같이 진행됩니다

-Projects 
    -Project 

을 그리고 이것은 내가하고 싶은 것입니다 다음 project

@foreach(var project in Model.Content.Children) { 
    <p>@project.Content.PROPERTY</p> 
} 

내가 그런 일을하고 싶어하지만, 유형이 IPublishedContent으로 설정됩니다. 기본적으로 모델 속성에 직접 액세스 할 수 있도록 IPublishedContent<Project>이 필요합니다. 이 방법에 의해 잘 작동 :

@foreach(var project in Model.Content.Children) { 
    <p>@project.GetPropertyValue("description")</p> 
} 

descriptionProject 모델의 속성입니다.

답변

0

오케이, 실제로는 다소 쉬웠습니다. 나는 전에이 시도하지 않은 이유 단서 (내가이 일을 기대하지 않았다가) :

@foreach(Project project in Model.Content.Children) { 
    <p>@project.Description</p> 
} 

완벽하게 작동합니다. 유형을 모델 유형으로 설정하기 만하면됩니다.

+0

제네릭 버전의 Children <>()을 사용하여 특정 유형의 하위 항목 만 필터링하고 필터 할 수 있습니다. 상위 노드가 여러 유형의 하위 문서를 허용하는 경우 편리합니다. 그리고 이미 추가 된 보너스는 타입 캐스팅으로 반환됩니다. –