Umbraco foreach kids with kids page

I have news posts on the news page on the home page in my content structure.

Example:

Home
- News
- Messages News

I am looking for some of the news to be uploaded to my homepage in a foreach statement. In my head, it should be so simple:

@foreach (var homenews in CurrentPage.Children.Children)
{
     if (homenews.Name == "News Post")
     {
         //Do some stuff//
     }
}

Obviously this does not work, does anyone have any ideas? Thanks

+4
source share
4 answers

In the end, I got the news page by its identifier, and then got the children out of there. The following code worked for me. Thanks guys.

@{
    var node = Umbraco.Content(1094);    
    <p>@node.Id</p> // output is 1094  
    foreach (var item in node.Children.Where("Visible").Take(3))

    {

         <p>@item.exampleText</p>

    }
    }
+3
source

, , ( ), Children Descendants(), , Children . Children .

, - var newsPage = CurrentPage.Children.Where(x => x.DocumentTypeAlias == "NewsListingPage"), .

+4

node NodeTypeAlias ​​ .

, DocType "NewsPosts", ...

@foreach (var homenews in @Model.Descendants().Where("NodeTypeAlias == \"NewsPosts\"")).Take(3)
{       
    <p>@homenews.Name<p>
}   

... 3 .

+1

, . NodeByID nad -1

@foreach(var item in Model.NodeById(-1).Children)
    {
string itemName = item.Name;
switch(itemName)
{
    case "News":
        @* News *@
    <div id="News"> 
      <h3><a href="@item.Url">@item.Name</a></h3>
   @foreach (var newsPost in item.Children.OrderBy("UpdateDate desc").Take(4).Items)
        {
            <p>
            <a href="@newsPost.Url">@newsPost.Title</a>
             </p>
        }

    </div>
   }
}
0

Source: https://habr.com/ru/post/1548042/


All Articles