2014-06-23 2 views
2

내가 제목 필드와 자리를 포함하는 매우 간단한 Sitecore MVC 렌더링을 렌더링 숨기기 자리 표시 자에 항목이 포함되어있는 경우에만. 이것은해야 할 것처럼 보이지만 분명하고/깨끗한 방법을 찾을 수 없습니다.Sitecore는 자리가 비어있는 경우

답변

8

이 시도 :

Sitecore.Context.Page.Renderings 
    .Count(r => r.Placeholder.IndexOf("PromoItems", StringComparison.OrdinalIgnoreCase) > -1) 

데이터 소스 만 렌더링을하고 싶은 경우에, 당신은이를 추가 할 수 있습니다

Sitecore.Context.Page.Renderings 
    .Where(r => r.Placeholder.IndexOf("PromoItems", StringComparison.OrdinalIgnoreCase) > -1) 
    .Count(r => !string.IsNullOrWhiteSpace(r.Settings.DataSource)) 

내가 지금 단순히보기에 새 속성을 추가 할 수 자리 표시 자에 렌더링이 포함되어 있으면 반환하는 모델입니다.

1

이전 Sitecore 7.x 웹폼 프로젝트에서 사용한 적이 있지만 Sitecore 8.x MVC + Glass 랜드에서 작동하지 않는 것처럼 보입니다. Renderings 컬렉션은 항상 내 레이아웃에서 비어 있습니다. 조회수. 그게 8.x의 것인가, 유리한 것인가, 아니면 "어떻게 든 내 프로젝트를 망쳤다". 일을 무슨 짓을

했다 :

var pageContext = Sitecore.Mvc.Presentation.PageContext.Current; 
var pageDefinition = pageContext.PageDefinition; 
bool showSidebar = pageDefinition.Renderings.Any(x => x.Placeholder == "left");