0

我有以下节点结构

_父站点(主站点)

  • CN(英文网站)

    • 节点 1
    • 节点 2
    • 节点 3
  • CY(威尔士网站)

    • 节点 1
    • 节点 2
    • 节点 3
  • ES(西班牙网站)

    • 节点 1
    • 节点 2
    • 节点 3

我已将 EN 的所有节点复制到其他两个站点。(所以所有节点的所有包含都是相同的)

我使用“Multinode Treepicker”作为CSection 来选择节点,如下面的代码所示。

< umbraco:Macro runat="server" Language="razor">
        @{  
            if(@Model.CSection != null)
            {
            string[] nodeIds = @Model.CSection.Split(',');

渲染 EN 站点时,上述代码工作正常。但在渲染 CY 和 ES 站点时出错。(因为所有网站都具有相同的价值)

以下行给出错误。对于(CY 和 ES 站点)

@Model.CSection.Split(',');

我错过了什么吗?,我完全搞不出来

我正在使用 umbraco 7.2.6

4

1 回答 1

0

很难说什么是错的,但由于它Split(',')并没有真正做太多可能给你带来错误的事情,我猜这个错误发生在拆分后的某些代码中?

您是否确保 @Model.CSection 的值在您网站的所有实例中确实是逗号分隔的字符串?(尝试在模板中打印值)

如果不是拆分失败,另一件事可能是错误的:您应该知道复制这样的站点并不意味着您重写对复制树中节点的内部引用。例如:

  • 站点 A(ID 1)
    • 第 X 页(ID 2)
    • 第 Y 页(ID 3)

在第 Y (3) 页上,您可以参考第 X (2) 页。现在您将此站点复制到站点 B:

  • 站点 B (id 4)
    • 第 X 页(ID 5)
    • 第 Y 页(ID 6)

然而,新页面 Y(id 6)上的引用仍将指向旧页面 X(id 2),如果您需要,则必须手动更正它。

如果您有某种限制或依赖与当前正在呈现的站点位于同一父站点内的引用,则这可能是导致您出现问题的原因。您的威尔士/西班牙模板实际上可能正在尝试使用来自不同父站点的页面,因为在该内容选择器中选择的项目仍然引用英语站点中的节点。

让我知道这是否有帮助 - 否则我需要提示您遇到的错误!

于 2015-08-31T06:33:28.130 回答