有没有一种方法可以在 Umbraco 的页面之间共享可编辑的共享内容?

Is there a way of having editable shared content between pages on Umbraco?

我对 Umbraco 比较陌生(但已经通读了文档),所以提前致歉。

我想将网站的部分视图设为可编辑(例如,使用 Umbraco 管理中的页面属性)。此局部视图的属性将在其所在的每个页面上保持一致。有没有一种方法可以在一个地方编辑这些属性,或者是否有共享组件的概念?目前,替代方法是遍历每个页面并在显示局部视图的任何地方设置属性,这对于它会出现的页面数量来说不是一个很好的解决方案。

我环顾四周,但没有找到任何可以指引我正确方向的东西。我使用的是 Umbraco 7.6.6,所以我能做的有点受限。

Umbraco.com 网站上有一些关于 Umbraco 入门和设置的重要文档。 Umbraco TV 也非常适合快速上手。

这是一个很大的话题,需要对 Umbraco 的工作原理进行概念性解释,文档是最好的起点,但我会尝试总结相关要素。

您要找的是 Document Type。文档类型表示 Umbraco 页面使用的数据并存储在数据库中。

您使用 Umbraco 内部附带的 Razor 模板为您的页面创建文档类型。当 Umbraco 在前端呈现页面时,加载 Razor 视图,它引用文档类型(模型)并插入数据。 Razor 视图可以从 Umbraco 内部或使用 Visual Studio 创建。当然,您可以在 Razor 模板中包含部分视图。

一旦您在 Umbraco 后端和随附的文档类型中创建了您的页面,其中包括数据类型(输入 - 媒体选择器、URL 选择器、文本输入等.), 这些可以引用所谓的复合文档类型,它可以 included\shared 在多个页面中,复合文档类型是您包含需要出现在多个页面中但具有的属性的地方不同的数据,例如 SEO 属性。

对于 Global 属性,我倾向于将它们添加到根页面或登陆页面,然后使用 LinkQ 在相关的 Razor 页面中引用它,在需要的位置和时间插入属性在页面中。这方面的一个例子是在母版页中包含诸如 Google Analytics ID 之类的内容。不需要复合文档类型。

querying 上的 Umbraco 文档给出了获取根节点下每个页面的所有名称(默认属性)的示例,这可能有助于作为引用文档类型属性的起点。

// Get the children of the first content item found in the root
@foreach (var child in Umbraco.ContentAtRoot().First().Children) {
    <a href="@child.Url">@child.Name</a>
}