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

时间:2017-04-06 15:10:03

标签: asp.net-mvc sitecore

我是使用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>

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

Sitecore device editor display for controls

然后,当在Sitecore中查看页面内容选项卡时,我希望看到一个包含全局警报样式上下文的丰富文本字段的部分。 Body Styling上下文。我似乎无法弄清楚如何设置我的数据来实现这一目标。

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

全球警报模板 - 构建器

Global Alert Template - Builder

全球警报模板 - 内容

Global Alert Template - Content

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

样式上下文 - 构建器

Styling Context - Builder

空白页 - 页面模板

Blank Page - Page Template

请注意上面继承的模板。

全局警报模板正在引入一个样式上下文模板,&amp;页面模板是一个单独的样式上下文模板,我认为页面上有2个。但是没有。

1 个答案:

答案 0 :(得分:1)

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

如果模板A具有基础模板X而X具有基础模板Y,则模板A也不可能具有Y作为基础模板。

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

要允许显示2个Rich Text,您可以执行以下操作:

  1. 创建基本样式上下文
  2. enter image description here

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

      1. 在Global Alert模板的“内容”选项卡中,添加“样式上下文”模板。
      2. enter image description here

        1. 在空白页面模板上,仅添加全局警报,而不是样式上下文。
        2. enter image description here

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

          enter image description here