2016-11-25 3 views
0

세 가지 문서 유형과 해당 템플릿이 있습니다. 내 나무는 아래와 같습니다.Umbraco의 하위 노드에서 모든 루트 노드 목록 가져 오기

1. Video List 
    2. Video Item 
     3. Item Details 

비디오 목록 페이지에는 비디오 항목 템플릿의 모든 항목이 나열됩니다. 항목 세부 정보는 동영상 항목 템플릿의 하위 노드입니다. Item Details 페이지에서 비디오 항목의 모든 노드를 원합니다.

나는 아래 코드를 시도했다. 그러나 그것은 Xpath가 어떤 어셈블리 레퍼런스를 필요로하기 때문에 보여주고있다.

Model.Content.XPath("//*[@isDoc and @level = 1]"); 

내가 하나 개의 솔루션을 가지고

답변

1

이 것은 어렵지 않습니다. @foreach 루프에서 @Ancestor을 사용한 다음 @Children을 사용하십시오. Umbraco 페이지에서 Umbraco로 트래버스하는 방법에 대해 자세히 읽어보십시오.

우리가 Item Details 템플릿 (또는 페이지)을 사용한다고 가정하고 부모님과 부모님의 형제 자매를 모두 나열해야합니다. 그래서 '조부모님'에게 가서 아이들을 부탁합니다.

@foreach (var item in Model.Content.Ancestor("VideoList").Children) 
    { 
     //do whatever you feel like in the collection. 
     //This foreach loop will list you all the Video Item nodes. 

    } 

P.S. VideoList는 비디오 목록 페이지에있는 docTypeAlias라고 가정했습니다.

0

도와주세요. 여기 내 코드는 다음과 같습니다.

var parentClass = Umbraco.TypedContent(Model.Content.Id).Parent.Parent.Children.Where(x => x.DocumentTypeAlias == "videoItem" && x.IsVisible()); 

그러나 이것은 부모 노드를 얻는 올바른 방법입니까?

관련 문제