同一文档中的不同内容

Different content within the same Document

我正在使用 Umbraco 和 VS 2017 开发应用程序。对于某种文档类型,仅其一小部分内容就有很多变化。我不想做的是为每个变体创建很多不同的文档。是否有可能以某种方式只有一个文档和 change dynamically only a part of it?如果是,如何?

那么,怎么可能调用例如@Umbraco.Field("body") 使用一些参数 (which should define the desired variation) 并且每次都获得正确的内容?

不太清楚你想要达到什么目的,但是如果你可以在正文内容中放置一个特殊的标记字段(比如 {{UNIQUE_BIT_HERE}} )(或者有一个特定的 html tag/attribute 你可以找到并替换)然后很容易 - 只需使用标准的 c# 字符串操作。

我假设您的字段 "body" 是富文本字段,如果是这样,它需要从 HtmlString 类型转换为标准字符串,然后再转换回来。

@{
    var uniqueData = "Whatever";
    var bodyString = Umbraco.Field("body").ToString();
    var bodyReplaced = new HtmlString(bodyString.Replace("{{UNIQUE_BIT_HERE}}", uniqueData));
}
<div>
    @bodyReplaced
</div>

顺便说一句,我建议您放弃 Umbraco.Field 并使用强类型 Model.Content,或者更好的是,使用模型构建器 Umbraco 的东西,但这会起作用。

我相信段和变体是 Umbraco 在 V8 中更好地支持的东西。你也许可以使用一个名为 Vorto 的包 https://our.umbraco.org/projects/backoffice-extensions/vorto

Vorto 是一个 属性 编辑器,您可以用它包装任何其他 属性 编辑器。它允许您对不同的语言具有不同的值。然后,在运行时,您可以显示所需的本地化版本。您也许可以使用 Vorto 或类似的方法。这看起来有帮助吗?如果没有,您能否举例说明您正在尝试做什么?