内部渲染不显示

时间:2017-08-01 05:44:04

标签: sitecore

在一个页面中,我有一个带占位符的渲染,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))
}

并且在渲染中,我计划使用名为Modal.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 个答案:

答案 0 :(得分:1)

动态占位符比生成唯一占位符键要复杂一些。生成的密钥仍需要解析回Sitecore中定义的实际占位符。

查看Integrated Dynamic Placeholder module

这将提供类似于当前实现的Html帮助程序:

@Html.Sitecore().DynamicPlaceholder("[Placeholder Name]")
相关问题