PageTypeBuilder を使用して PageTypes を定義しています。あるページには、次のように Link アイテム コレクションを表すプロパティがあります。
[PageTypeProperty(Type = typeof(PropertyLinkCollection), HelpText = "Test links.", EditCaption = "Test links", SortOrder = 11)]
public virtual LinkItemCollection PageLinks { get; set; }
これを CMS エディター モードでリンクを設定し、エラーなしで保存して公開できます。次に、EPiServer.UserControlBase から継承し、以下のコードを使用して LinkItemCollection プロパティを取得し、それをリピーターにバインドするユーザー コントロールを作成します。
var links = currentPage.Property["PageLinks"].Value as LinkItemCollection;
if (links != null)
{
linkRepeater.DataSource = links;
linkRepeater.DataBind();
}
CMS エディターとしてログインしてページを表示すると、このページは正常に動作し、links パラメーターが正しく入力されますが、通常のユーザーとしてページを表示し、ログインしていない場合、links 変数は常に null です (ただし、デバッグ currentPage.Property["PageLinks"] が存在し、タイプが LinkCollection であることがわかります。値が null であることだけです。
ここで設定する必要があるもの、特定のページ タイプに対する権限はありますか?