【问题标题】:Umbraco 7: Map property to page and check if is associated with current pageUmbraco 7:将属性映射到页面并检查是否与当前页面相关联
【发布时间】:2014-10-27 20:28:39
【问题描述】:

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

//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 来完成吗?如果是这样,我如何检查它是否与当前页面相关联?

【问题讨论】:

  • 澄清一下,您正在 Archetype 属性编辑器中构建类别树结构 - 对吗?并且您想知道如何将页面与类别树中的类别相关联?
  • 你可以:- var catItems =Umbraco.Content(1123).categoryItem;if(model.content.hasvalue("catItems ")){//你的代码}

标签: asp.net razor umbraco umbraco7 umbraco6


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多