2015-08-29 2 views
0

Я, имеющий следующую структуру узлаSplit не работает в Umbraco бритвой в многоязычном сайте

_parent сайта (Основной сайт)

  • EN (английский сайт)

    • Узел 1
    • Узел 2
    • Узел 3
  • CY (Wales сайт)

    • Узел 1
    • Узел 2
    • Узел 3
  • ES (испанский сайт)

    • Узел 1
    • Узел 2
    • Узел 3

У меня есть копии всех узлов ЭН на два других сайта. (Таким образом, все содержимое всего узла одинаковы)

У меня есть «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

+0

Дает ошибку, когда я выбираю 2 узла Item, но когда я выбираю 3 узла, тогда он начинает работать !! –

ответ

0

Это немного трудно сказать, что это неправильно, но так как Split(',') действительно не делать, что может дать вы ошибаетесь, я предполагаю, что ошибка произошла в некотором коде после раскола?

Вы уверены, что значение @ Model.CSection действительно является разделенной запятой строкой во всех экземплярах вашего сайта? (попробуйте напечатать значение в вашем шаблоне)

Еще одна вещь, которая может быть неправильной, если это не сбой разбиения: вы должны знать, что копирование такого сайта не означает, что вы переписываете внутренние ссылки на узлы в скопированном дереве. Например:

  • сайта A (ID 1)
    • Страница X (ID 2)
    • страница Y (ID 3)

На странице Y (3) у вас есть ссылка на страницу X (2). Теперь вы скопировать этот сайт сайта B:

  • сайта B (ID 4)
    • страницу X (ID 5)
    • Page Y (идентификатор 6)

Ссылка на новую страницу Y (id 6), тем не менее, будет указывать на старую страницу X (id 2) и должна быть исправлена ​​вручную, если вам нужно, чтобы это было иначе.

Если у вас есть какое-то ограничение или полагайтесь на ссылку, находящуюся на том же родительском сайте, что и тот, который сейчас отображается, это может быть причиной того, что вы вызываете проблемы. Шаблоны Wales/Spain на самом деле могут пытаться использовать страницу с другого родительского сайта из-за того, что элементы, выбранные в этом сборщике контента, все еще ссылаются на узлы на английском сайте.

Дайте мне знать, если это поможет - в противном случае мне нужен намек на то, какую ошибку вы получаете!

+0

Спасибо за ваш ответ, извините, я пропустил, чтобы написать, но я имею в виду другой узел дерева, так что это не так. И Да, я пытаюсь распечатать значение идентификатора узла перед сплитом и это было с запятой (некоторые вещь вроде 1802,1803), и я также попытался удалить весь код после Split (','), но он выдавал ошибку. –

+0

Кажется очень странным, если вы полностью уверены, что значение Model.CSection действительно является разделенной запятой строкой, почему 'Split (',')' будет терпеть неудачу. В этой функции нет ничего особенного, поскольку ему просто нужна строка, и до тех пор, пока она выясняется, что она вернет хотя бы ту же строку, если не найдет совпадений для разделительного символа. Есть ли шанс, что вы можете поделиться еще одним кодом или даже ссылкой на страницу, где это происходит? – Claus

 Смежные вопросы

  • Нет связанных вопросов^_^