2017-08-01 90 views
1

在一個頁面中,我有一個佔位符渲染,Offcanvas.cshtml內部效果圖無法顯示

<div data-ads-offcanvas-id="@Model.Id" class="ads-offcanvas @Html.GetCssStyles()"> 
@{ 
    <a data-ads-offcanvas-trigger-id="@Model.Id" class="ads-close-button" href="#0">X</a> 
    @Html.Sitecore().Placeholder(LayoutHelper.GetPlaceholder(Placeholders.AccordionSection, Model.Id)) 
} 

和渲染裏面,我計劃把其他的渲染與命名莫代爾佔位符。 CSHTML

<div data-ads-modal-container="@Model.Id" class="ads-modal-container"> 
<div class="ads-modal-dialog"> 
    <div class="ads-close-box"> 
     <a data-ads-modal-id="@Model.Id" href="#0">X</a> 
    </div> 
    <div class="ads-modal-content"> 
     @Html.Sitecore().Placeholder(LayoutHelper.GetPlaceholder(Placeholders.AccordionSection, Model.Id)) 
    </div> 
</div> 

所以它看起來像:

-Offcanvas 
+-Modal 
++-Text content 

當我把文本內容放入莫代爾渲染中時,內容不會被渲染。我猜測它只能渲染前幾個渲染,並且在渲染變得高度嵌套時無法渲染。

有渲染成分的極大多數孩子的解決方案?

謝謝你們!

編輯: 下面的代碼爲GetPlaceholder:

public static string GetPlaceholder(string name, Guid id) 
    { 
     return $"{name}_{id}"; 
    } 
+1

您可以顯示此LayoutHelper.GetPlaceholder的代碼,所以我們可以看到什麼做什麼。它看起來像這裏顯示的兩個渲染具有相同的佔位符名稱。你是否想要做動態佔位符?可能有更好的解決方案。 –

+0

@NathanHase我做了修改,所以基本上GetPlacehoder只是名稱的佔位符。 – Lala

回答

1

動態佔位符是不是生成一個唯一的佔位符鍵更復雜一些。生成的密鑰仍然需要解析回Sitecore中定義的真實佔位符。

退房的Integrated Dynamic Placeholder module

這將提供類似於當前的實現一個HTML幫手:

@Html.Sitecore().DynamicPlaceholder("[Placeholder Name]")