在我的内容部分中,我有一个属性编辑器(Archetype),它允许独立于内容树设置站点的内容。 我需要根据我当前所在的页面仅显示一个类别中的子类别。我现在拥有的是:
//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
来完成吗?如果是这样,我如何检查它是否与当前页面相关联?
答案 0 :(得分:0)
首先,通过id引用代码中的内容并不是一种好习惯。而是使用保证不被用户删除的文档类型别名。
现在要检查当前页面上是否存在属性,只需
即可@if (CurrentPage.HasValue("subCatItem"))
{
string propertyStoredValue = CurrentPage.subCatItem.ToString();
}
其中“subCatItem”是您要检查的属性的别名。在这种情况下,属性的类型是不相关的,并且要记住,如果属性不是强制性的并且没有给出值,则上述语句将评估为false,即使属性存在于文档类型上(有意义吗?)< / p>