Umbraco foreach Kinder ein Kind Seite
Habe ich news-Beiträge, innerhalb einer news-Seite innerhalb einer homepage auf meine inhaltliche Struktur
Beispiel:
Homepage
- News
-- News-Beiträge
Ich bin auf der Suche, um einige der news-feed auf meiner homepage in einer foreach-Anweisung. In meinem Kopf es sollte so einfach wie:
@foreach (var homenews in CurrentPage.Children.Children)
{
if (homenews.Name == "News Post")
{
//Do some stuff//
}
}
Dass offensichtlich nicht funktioniert, also hat jemand irgendwelche Ideen? Dank
InformationsquelleAutor Phil | 2014-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du läufst, der Baum, Sie haben sich daran zu erinnern, dass eine Eigenschaft (oder Methode) wie
Children
oderDescendants()
gibt eine Auflistung von Objekten, so kann man nicht einfach anrufenChildren
einer Sammlung. Man kann Sie nur anrufenChildren
auf ein einzelnes Objekt.Finden Sie die richtige Kinder-von der Startseite, indem Sie mit so etwas wie
var newsPage = CurrentPage.Children.Where(x => x.DocumentTypeAlias == "NewsListingPage")
extrahieren und dann die Kinder von dieser Seite.Ist es die Ausgabe überhaupt? Der code sieht ok aus. Sie wahrscheinlich benötigen, um Schritt mit dem debugger.
Ich Neige auch zu fügen in null-Kontrollen auf den Knoten Sammlungen
.WhereNotNull()
oder.Where(x => x != null)
. Auch stellen Sie sicher, dass Sie alle relevanten Referenzen aus Ihrer Sicht. Sie könnten auch versuchen, die.Children()
Methode-Erweiterung statt Eigentum nennen.Ich bekomme einen server-Fehler: Nicht-verwenden Sie einen lambda-Ausdruck als argument an eine dynamisch ausgelöst operation ohne erste casting es zu einer Delegierten-oder expression-tree geben
Ich habe
Model.Content.Children.Where(x => x.DocumentTypeAlias == "NewsListingPage").Where("Visible")
arbeitenInformationsquelleAutor Digbyswift
Ich am Ende immer die news-Seite, indem Sie dessen id und dann bekommen es die Kinder von dort. Der folgende code funktionierte für mich. Danke Jungs.
Die Seite habe ich aufgerufen, indem ID nie geändert werden müssen, für mein Projekt. Also, der obige code ist genau das, was ich will.
Absolut in Ordnung, wie gesagt nur eine Meinung. Seiten ersetzt wird, ist nicht der einzige Grund, warum es eine schlechte Idee, obwohl. E. g. Jemand hob den code haben keine Ahnung, was Seite 1094 ist. Wo, wie 'walking the tree" geben wird, die Entwickler eine klare Beziehung zwischen dem code und die Ziel-Knoten. Auch als Entwickler niemals nie sagen 🙂
InformationsquelleAutor Phil
Den Sie verweisen müssen, um den gewünschten Knoten durch NodeTypeAlias der Dokument-Typ.
Vorausgesetzt, der alias der DocType deiner News-Beiträge ist "NewsPosts" dann...
...sollte den Namen der ersten 3 news-Beiträge.
InformationsquelleAutor Stef
Hatte ich das genaue Szenario, das ist, wie ich got mine arbeiten. NodeByID war sehr nützlich nad -1 gibt das root -
InformationsquelleAutor mjroodt