2016-08-04 18 views
1

Ich habe diese Zeile i eine Umbraco Lösung, die mir die IDs der Knoten, Komma getrennt erhält.Get property value statt nur Id

Aber was ich in einem oneliner erhalten möchte, ist ein Wert der ausgewählten Knoten. Im Moment wird nur die Knoten-ID wie "1001, 1000, 1003" oder nur "1003" zurückgegeben, wenn nur eine ausgewählt ist.

Was ich möchte, dass es zurückgibt, ist ein Wert des ausgewählten Knotens. Sagen wir es ist ein Menütitel auf der Immobilie, die ich will. Also anstelle der oben genannten Ausgabe möchte ich "Frontpage, Kontakt, Über uns" usw.

Wie würde das aussehen?

var mynode = Page.Cache.GetById(id); 
mynode.GetPropertyString("pages") 
+0

Was ist die Art Ihrer 'mynode' Variable? Ist es eine Instanz von "IP PublishedContent"? –

+0

@RobPurcell Ja, Sir :-) – brother

Antwort

4

Der einfachste Weg, um das Umbraco Core Property Value Converters nuget Paket zu installieren wäre. Dies würde Ihnen dann eine Erweiterungsmethode bereitstellen, mit der Sie eine Liste von Knoten auf einmal abrufen können. Dann könnten Sie LINQ verwenden, um die menuTitle-Eigenschaft jeder Seite auszuwählen.

var menuTitles = mynode.GetPropertyValue<IEnumerable<IPublishedContent>>("pages") 
    .Select(x => x.GetPropertyValue<string>("menuTitle")); 

Wenn Sie Sie müssen dann string.Join() können die Menütitel zu kombinieren, um eine durch Kommata getrennte Liste zu bekommen.

Hier ist eine Liste Aussagen, die Sie vielleicht hinzufügen müssen:

using System.Collections.Generic; 
using System.Linq; 
using Our.Umbraco.PropertyConverters; 
using Umbraco.Web; 
using Umbraco.Core.Models;