Umbraco 7.12: Если X соответствует идентификатору текущей страницы или любому из потомков текущей страницы - возможно ли это? - PullRequest
0 голосов
/ 13 сентября 2018

получил этот фрагмент, который я собрал:

@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> 
            }
    }
}

Во второй строке вы видите, что я сравниваю идентификатор текущей страницы с переменной, есть ли способ сделать, если эта переменнаясоответствует идентификатору текущей страницы или потомкам идентификатора текущей страницы?

Спасибо

1 Ответ

0 голосов
/ 13 сентября 2018

Вам потребуется получить список идентификаторов потомков - один из самых простых способов - выбрать идентификаторы из Model.Content.DescendantsOrSelf() - например ::

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

Тогда вы можете использовать descendantIds.Contains(@item.GetPropertyValue<int>("location")) во второй строке.

Примечание: если у вас есть большое количество потомков к текущему узлу, вы можете обнаружить, что вам нужно каким-то образом оптимизировать запрос, возможно, с использованием кэширования или придумать совершенно другой способ достижения желаемого результата.

...