【问题标题】:Is there a way of having editable shared content between pages on Umbraco?有没有办法在 Umbraco 的页面之间拥有可编辑的共享内容?
【发布时间】:2020-11-19 00:03:00
【问题描述】:

我对 Umbraco 比较陌生(但已经阅读过文档),所以我提前道歉。

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

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

【问题讨论】:

    标签: c# umbraco umbraco7


    【解决方案1】:

    Umbraco.com 网站上有一些关于开始和设置 Umbraco 的优秀文档。 Umbraco TV 也非常适合快速上手。

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

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

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

    在 Umbraco 后端和随附的文档类型中创建页面后,其中包括数据类型(输入 - 媒体选择器、URL 选择器、文本输入等),这些可以参考所谓的复合文档类型可以包含\共享在多个页面中,复合文档类型是您包含需要出现在多个页面中但具有不同数据的属性的位置,例如 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>
    }
    

    【讨论】:

    • 太棒了。我正在考虑为此在根页面上放置一个全局属性,但由于我是新手,我不确定是否还有另一种更受认可的方法。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多