0

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 であることだけです。

ここで設定する必要があるもの、特定のページ タイプに対する権限はありますか?

4

1 に答える 1

1

この問題は、外部の訪問者が LinkItemCollection 内のいずれかのページにアクセスできないことが原因である可能性があります。外部の訪問者としてコレクション内のリンクにアクセスしてみて、実際には外部ビューからロックされているリンクをすべて削除してください。

于 2012-10-01T13:35:34.523 に答える