如果没有内容项,如何在 Sitecore 中呈现模板
How to render a template in Sitecore, if it does not have a content item
这似乎是一个很简单的概念,但我无法解析。我想做的是,render/display 模板的标准值,到页面。
使用 Rocks 创建项目和模板。这是结构。
1.子布局 - footer.ascx
<div class="content">
<h1>This is a title.</h1>
<p>All the content goes here</p>
<sc:placeholder runat="server" Key="footercontent" />
</div>
2。子布局 - StickyNav.ascx
<a class="btn" href="#">
<sc:Text Field="Sticky Nav Title" runat="server" />
</a>
3。模板 - 粘性导航
第一张图片是模板,第二张图片显示了_Standard Values 中指定的默认值。
然后,在 Sitecore Explorer 中,
right clicked on (Sticky Nav - _Standard Values) > Tasks > Design Layout on Standard Values
.
现在,/sitecore/content/ 下有一个内容项 "index"。它声明了这些布局:
当我右键单击 Index > Tools > Browse > Preview
时,索引页面确实打开并且页脚内容也显示出来。
但是,我看不到设置为标准值的文本 'Go To Top'(图 2)。它是空的。
我在这里错过了什么。
可能有一些因素阻碍了显示的内容。对于前端,最好的办法是排除诸如发布之类的事情——即确保模板、字段、标准值和内容项都已正确发布。如果您处于预览阶段,这可能不太相关,但在部署时值得注意
当 sc:Text
控件呈现时将是 运行 renderField
管道。在交互点,它将通过 api 与 Sitecore 对话。
通过你的控件背后的代码检查事情(假设它是一个 ascx,因为 runat="server" 标签)。检查:
Field field = Sitecore.Context.Item.Fields["Sticky Nav Title"];
if (field != null)
{
string value = field.Value;
}
并调试以检查该字段是否确实具有您需要的值。
在 cms 中,当您查看感兴趣的页面时,'Sticky Nav Title' 字段似乎有一个值,并且是您感兴趣的值吗?
我意识到最初的想法本身就是一个错误。如果它的值必须显示在页面上,则必须有一个项目。
因此,我使用模板 Sticky Nav
在 /sitecore/content/Sticky Nav Button
下创建了一个新项目。
并且在 StickyNav.ascx 中,将控件更新为:
<sc:Text Field="Sticky Nav Title" runat="server" DataSource = "/sitecore/content/Sticky Nav Button"/>
希望这对像我这样的初学者有所帮助。
这似乎是一个很简单的概念,但我无法解析。我想做的是,render/display 模板的标准值,到页面。
使用 Rocks 创建项目和模板。这是结构。
1.子布局 - footer.ascx
<div class="content">
<h1>This is a title.</h1>
<p>All the content goes here</p>
<sc:placeholder runat="server" Key="footercontent" />
</div>
2。子布局 - StickyNav.ascx
<a class="btn" href="#">
<sc:Text Field="Sticky Nav Title" runat="server" />
</a>
3。模板 - 粘性导航
第一张图片是模板,第二张图片显示了_Standard Values 中指定的默认值。
然后,在 Sitecore Explorer 中,
right clicked on (Sticky Nav - _Standard Values) > Tasks > Design Layout on Standard Values
.
现在,/sitecore/content/ 下有一个内容项 "index"。它声明了这些布局:
当我右键单击 Index > Tools > Browse > Preview
时,索引页面确实打开并且页脚内容也显示出来。
但是,我看不到设置为标准值的文本 'Go To Top'(图 2)。它是空的。
我在这里错过了什么。
可能有一些因素阻碍了显示的内容。对于前端,最好的办法是排除诸如发布之类的事情——即确保模板、字段、标准值和内容项都已正确发布。如果您处于预览阶段,这可能不太相关,但在部署时值得注意
当 sc:Text
控件呈现时将是 运行 renderField
管道。在交互点,它将通过 api 与 Sitecore 对话。
通过你的控件背后的代码检查事情(假设它是一个 ascx,因为 runat="server" 标签)。检查:
Field field = Sitecore.Context.Item.Fields["Sticky Nav Title"];
if (field != null)
{
string value = field.Value;
}
并调试以检查该字段是否确实具有您需要的值。
在 cms 中,当您查看感兴趣的页面时,'Sticky Nav Title' 字段似乎有一个值,并且是您感兴趣的值吗?
我意识到最初的想法本身就是一个错误。如果它的值必须显示在页面上,则必须有一个项目。
因此,我使用模板 Sticky Nav
在 /sitecore/content/Sticky Nav Button
下创建了一个新项目。
并且在 StickyNav.ascx 中,将控件更新为:
<sc:Text Field="Sticky Nav Title" runat="server" DataSource = "/sitecore/content/Sticky Nav Button"/>
希望这对像我这样的初学者有所帮助。