Umbraco 7: сопоставьте свойство со страницей и проверьте, связано ли оно с текущей страницей

В разделе «Контент» у меня есть редактор свойств (Архетип), который позволяет устанавливать контент для сайта независимо от дерева контента. Мне нужно отображать только подкатегории из одной категории в зависимости от того, на какой странице я сейчас нахожусь. Что у меня есть сейчас:

//get the content with id of 1123 from Content Section, type DynamicPublishedContent
var catItems = Umbraco.Content(1123).categoryItem; 

foreach (var item in catItems)
{
  foreach (var sub in item.GetValue<ArchetypeModel>("subCatItem"))
  {
    <div class="tbl_dt">
        <p class="offerName">@sub.GetValue("offerName")</p>
        <p class="departurePort">@sub.GetValue("departurePort")</p>
    </div>
 }
}

Дополнительные сведения см. в этой ссылке: Umbraco 7: Получить поля из того же свойства на основе текущей страницы

Вопрос. Как я могу сопоставить свойство со страницей контента и проверить, связано ли оно с текущей страницей, и отображать только поля с сопоставленной текущей страницей? Можно ли это сделать, добавив к нему content picker? Если да, то как я могу проверить, связано ли это с текущей страницей?


person alex    schedule 03.09.2014    source источник
comment
Чтобы уточнить, вы строите структуру дерева категорий в редакторе свойств Archetype — это правильно? И вы хотите знать, как связать страницы с категориями в дереве категорий?   -  person Digbyswift    schedule 05.09.2014
comment
вы можете: - var catItems =Umbraco.Content(1123).categoryItem;if(model.content.hasvalue(catItems)){//ваш код}   -  person Ankit Agrawal    schedule 26.09.2014


Ответы (1)


Во-первых, не рекомендуется ссылаться на контент в коде по его идентификатору. Вместо этого используйте псевдоним типа документа, который гарантированно не будет удален пользователем.

Теперь, чтобы проверить наличие свойства на текущей странице, все, что вам нужно сделать, это

@if (CurrentPage.HasValue("subCatItem"))
{
   string propertyStoredValue = CurrentPage.subCatItem.ToString();
}

Где «subCatItem» — это псевдоним свойства, которое вы проверяете. Тип свойства в этом случае не имеет значения, и имейте в виду, что если свойство не является обязательным и ему не присвоено значение, приведенное выше утверждение будет оцениваться как ложное, даже если свойство существует в типе документа (имеет смысл?)

person Francis Benyah    schedule 21.03.2016