Episerver LinkItemCollection не виден пользователям - PullRequest
0 голосов
/ 28 марта 2012

Мы используем PageTypeBuilder для определения наших типов страниц, на одной странице у нас есть свойство, которое представляет коллекцию элементов ссылок, как показано ниже:

[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 всегда равна нулю (хотя когда Я отлаживаю, я вижу, что присутствует currentPage.Property ["PageLinks"], и типом является LinkCollection, просто значение имеет значение null

Что-то мне нужно здесь настроить, разрешения для определенного типа страниц?

1 Ответ

1 голос
/ 01 октября 2012

Скорее всего, проблема в том, что одна из страниц в коллекции LinkItemCollection недоступна для внешних посетителей. Попробуйте получить доступ к ссылкам в коллекции в качестве внешнего посетителя и удалите все ссылки, которые фактически заблокированы от внешнего просмотра.

...