使用单个 Sitecore 视图在具有不同数据的同一页面上多次呈现

Using a single Sitecore view rendering multiple times on the same page with different data

我是使用 MVC 进行 Sitecore 开发的新手。我的页面布局如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    @Html.Sitecore().Placeholder("head-meta-content")
</head>

<body>
    <div class="willow-page">
        @Html.Sitecore().Placeholder("body-content")
    </div>
</body>
</html>

并且我有如下效果图

全球警报:

@using Sitecore.Mvc;
@model Sitecore.Mvc.Presentation.RenderingModel

<section class="global-alert" role="alert">
    <button class="global-
alert__close">@Html.Sitecore().Field("button-text", Model.Item)
</button>
    <h1 class="global-
alert__heading">@Html.Sitecore().Field("heading-text", Model.Item)</h1>
    <div class="global-alert__content">
        @Html.Sitecore().Placeholder("global-alert-content")
    </div>
</section>

样式上下文:

@using Sitecore.Mvc;
@model Sitecore.Mvc.Presentation.RenderingModel

<div class="styling-context">
    @Html.Sitecore().Field("Content", Model.Item)
    <!-- The Content field is should be a Rich Text Field -->
</div>

我正在尝试 accomplish/understand 的是这个。使用布局和 2 个渲染创建页面时,我想将全局警报添加到布局上的 body-content 占位符,然后将样式上下文添加到 global-alert-content 占位符。此外,我还想向 body-content 占位符添加另一个样式上下文。像这样:

然后在 Sitecore 中查看页面内容选项卡时,我希望看到一个包含全局警报样式上下文和正文样式上下文的富文本字段的部分。我似乎无法弄清楚如何设置我的数据来完成此操作。

我已尝试设置以下数据模板。

全局警报模板 - 生成器

全局警报模板 - 内容

注意上面基本模板区域中的 _stylingContext。

样式上下文 - 生成器

空白页 - 页面模板

注意上面继承的模板。

全局警报模板正在引入样式上下文模板,而页面模板正在引入单独的样式上下文模板,我认为页面上会有 2 个。虽然没有。

这是 Sitecore 的正常行为。原因是因为在基本模板中引用了相同的模板。因此,在渲染项目时,Sitecore 会看到模板已经渲染过,不会再次渲染它。

如果模板 A 有基本模板 X,X 有基本模板 Y,则不可能让模板 A 也有 Y 作为基本模板。

A => X
X => Y
which means A => Y

要显示 2 富文本,您可以执行以下操作:

  1. 创建基本样式上下文

  1. 在您的模板样式上下文中,在“构建器”选项卡中添加富文本类型的内容字段,然后在“内容”选项卡中添加基本样式模板。

  1. 在您的全局警报模板的内容选项卡中,添加样式上下文模板。

  1. 在您的空白页面模板上,仅添加全局警报而不添加样式上下文。

现在,如果您在空白页模板的标准值上看到,您将在同一部分中看到 2 个具有相同字段名称的富文本字段: