内部效果图不显示

Inner renderings not displaying

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

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

查看 Integrated Dynamic Placeholder module

这将提供一个类似于您当前实现的 Html 助手:

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