Asp.net Umbraco 7:将属性映射到页面并检查是否与当前页面关联

Asp.net Umbraco 7:将属性映射到页面并检查是否与当前页面关联,asp.net,razor,umbraco,umbraco7,umbraco6,Asp.net,Razor,Umbraco,Umbraco7,Umbraco6,在我的内容部分,我有一个属性编辑器(原型),它允许独立于内容树为站点设置内容。 我需要根据我当前所在的页面,只显示一个类别中的子类别。我现在得到的是: //get the content with id of 1123 from Content Section, type DynamicPublishedContent var catItems = Umbraco.Content(1123).categoryItem; foreach (var item in catItems) { f

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

//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>
 }
}
//从内容部分获取id为1123的内容,键入DynamicPublishedContent
var catItems=Umbraco.Content(1123).categoryItem;
foreach(catItems中的var项)
{
foreach(var子项在item.GetValue中


Q:如何将属性映射到内容页,并检查是否与当前页关联,以及仅显示与映射的当前页关联的字段?是否可以通过向其添加
内容选择器来完成此操作?如果是,如何检查其是否与当前页关联?

首先,引用内容不是一种好的做法而是使用文档类型别名,保证不会被用户删除

现在要检查当前页面上是否存在属性,只需

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

其中“subCatItem”是您要检查的属性的别名。该属性的类型在本例中不相关,请记住,如果该属性不是强制性的,并且没有给定值,则即使该属性存在于文档类型上,上述语句的计算结果也将为false(有意义吗?)

为了澄清,您正在原型属性编辑器中构建类别树结构-正确吗?您想知道如何将页面与类别树中的类别关联?您可以:-var catItems=Umbraco.Content(1123).categoryItem;if(model.Content.hasvalue(“catItems”){//您的代码}