如何从Umbraco 7的当前页面获取后代?

时间:2017-07-01 11:44:41

标签: asp.net-mvc model-view-controller umbraco umbraco7

我有一个带别名dArticlesMain的文档类型,对于这个页面,我有以下结构。

dArticlesMain

  • dArticlesCategory1

    • 第一条
    • 第二条
    • 第三条
  • dArticlesCategory2

    • 第一条
    • 第二条
    • 第三条
  • dArticlesCategory3

    • 第一条
    • 第二条
    • 第三条

我在dArticlesMain上,我想显示所有后代(文章)并跳过它的子项(dArticlesCategory)

我有这个代码,它显示所有的孩子(dArticlesCategory)和后代(文章),当我使用文章属性时,它是通过错误。

<ul>
    @foreach(var page in Model.Content.Descendants())
    {
   <li><a href="@page.Url">@page.Name</a></li>
   }
</ul>

我有这个代码,但我不能通过articleText或articleImage等文章属性显示。

 <ul>
@foreach(var page in Model.Content.DescendantsOrSelf().OfTypes("Article"))
    {
        <li><a href="@page.Url">@page.Name</a></li>
    }
</ul>

1 个答案:

答案 0 :(得分:0)

我已经弄明白了,这是我的代码......

   @{ 
        var rootNode = CurrentPage.AncestorOrSelf(1);
        var articlesParent = rootNode.Children("dArticlesMain").FirstOrDefault();

        <div class="row">
            @foreach (var article in articlesParent.Descendants("article").Where("Visible").RandomOrder())
            {
                <div class="col-sm-6 col-md-3">
                    <div class="thumbnail">
                        <a href="@article.Url">
                            <img src="@article.articlePhoto" alt="@article.articleName" />
                        </a>
                        <div class="caption">
                            <a class="h4" href="@article.Url">@article.articleName</a>
                            @Umbraco.Truncate(article.articleFullText, 100)
                        </div>
                    </div>
                </div>
            }
        </div>
    }