2016-08-04 82 views
1

我有這條線我是一個Umbraco解決方案,它讓我選擇的節點的ID,逗號分隔。獲取屬性值而不僅僅是Id

但是我想在oneliner中得到的是所選節點的值。 因此,如果只選擇了一個,那麼它現在只是返回節點ID,如「1001,1000,1003」或「1003」。

我希望它返回的是選定節點的值。讓我們說它是我想要的財產的菜單標題。所以,而不是上述輸出,我想要「Frontpage,聯繫人,關於我們」等。

這將看起來如何?

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

你是什麼'mynode'變量的類型?它是「IPublishedContent」的一個實例嗎? –

+0

@RobPurcell是的先生:-) – brother

回答

4

最簡單的方法是安裝Umbraco Core Property Value Converters nuget包。這會爲您提供一種擴展方法,您可以使用它來一次檢索節點列表。然後你可以使用LINQ來選擇每個頁面的menuTitle屬性。

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

如果需要,可以隨後使用string.Join()到菜單標題結合起來,得到一個逗號分隔的列表。

這裏,你可能需要添加使用的語句列表:

using System.Collections.Generic; 
using System.Linq; 
using Our.Umbraco.PropertyConverters; 
using Umbraco.Web; 
using Umbraco.Core.Models; 
相關問題