2016-08-04 10 views
1

私はこのノードにUmbracoソリューションを使用しています。このノードは選択したノードのIDを取得し、カンマで区切ります。IDの代わりにプロパティ値を取得

しかし、オンライナーでは、選択したノードの値が得られます。 現在、ノードIDが "1001,1000,1003"または1つだけ選択されている場合は "1003"が返されます。

返すものは、選択したノードの値です。私はそれが私が望むプロパティのメニュータイトルを言うことができます。だから、上記の出力の代わりに、私は "Frontpage、Contact、About Us"を望みます。

どのように見えますか?

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

あなた 'mynode'変数の型は何ですか:

ここにあなたが追加する必要があるかもしれませんステートメントを使用してのリストですか?それは 'IPublishedContent'のインスタンスですか? –

+0

@RobPurcellはいsir :-) – 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; 
関連する問題