Razor Umbraco 7.12:如果X与当前页面ID或当前页面的任何子体匹配,是否可能?

Razor Umbraco 7.12:如果X与当前页面ID或当前页面的任何子体匹配,是否可能?,razor,umbraco,umbraco7,Razor,Umbraco,Umbraco7,我整理了这个片段: @foreach(var item in selection){ if(item.HasValue("location") && @Model.Content.Id == @item.GetPropertyValue<int>("location")){ var singleLink = item.GetPropertyValue<Link>("links"); if(singleLink != null) {

我整理了这个片段:

@foreach(var item in selection){
    if(item.HasValue("location") && @Model.Content.Id == @item.GetPropertyValue<int>("location")){
var singleLink = item.GetPropertyValue<Link>("links");
    if(singleLink != null)
    {
        if(item.HasValue("wideImage"))
            {  
            IPublishedContent mediaItem = item.GetPropertyValue<IPublishedContent>("wideImage");
               <div class="owl-item" style="width: 891px;"><a href="@singleLink.Url" target="@singleLink.Target"><img class="tag-headadvert img-responsive" style="display: inline;" src="@mediaItem.Url" width="100%" alt="@singleLink.Name" /></a></div> 
            }
    }
}
在第二行中,您可以看到我将当前页面ID与一个变量进行比较,如果该变量与当前页面ID或当前页面ID的任何后代匹配,有什么方法可以进行比较


谢谢

您需要检索子体Id列表-最简单的方法之一是从Model.Content.genderantsorself中选择Id-例如:

然后你就可以用降落伞了。Contains@item.GetPropertyValuelocation在你的第二行


注意:如果当前节点有大量子节点,您可能会发现需要以某种方式优化查询,可能使用缓存或想出一种完全不同的方法来实现您想要的结果。

您需要检索子代Id列表-最简单的方法之一是从Model.Content.genderantsorself中选择Id-例如:

然后你就可以用降落伞了。Contains@item.GetPropertyValuelocation在你的第二行

注意:如果当前节点有大量子节点,您可能会发现您需要以某种方式优化查询,可能需要使用缓存,或者提出一种完全不同的方法来实现所需的结果

var descendantIds = Model.Content.DescendantsOrSelf().Select(c => c.Id);