0

在我的内容部分,我有一个属性编辑器(原型),它允许独立于内容树为站点设置内容。我需要根据我当前所在的页面仅显示一个类别的子类别。我现在拥有的是:

//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: Get fields from same property based on current page

问:如何将属性映射到内容页面并检查是否与当前页面关联并仅显示映射当前页面的字段?这可以通过添加一个content picker来完成吗?如果是这样,我如何检查它是否与当前页面相关联?

4

1 回答 1

0

首先,通过 id 引用代码中的内容并不是一个好习惯。而是使用保证不会被用户删除的文档类型别名。

现在要检查当前页面上是否存在属性,您需要做的就是

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

其中“subCatItem”是您要检查的属性的别名。在这种情况下,属性的类型不相关,请记住,如果该属性不是强制性的并且没有被赋予一个值,即使该属性存在于文档类型上,上述语句也会评估为 false(有意义吗?)

于 2016-03-21T15:12:25.367 回答