Коллекция Episerver LinkItemCollection не видна пользователям

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

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


person user1268548    schedule 28.03.2012    source источник
comment
Что произойдет, если вы просто поместите ‹EPiServer:Property runat=server PropertyName=PageLinks /› в свой пользовательский элемент управления или шаблон? Отображает ли он список ссылок?   -  person Johan Kronberg    schedule 30.03.2012


Ответы (1)


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

person Jockelicious    schedule 01.10.2012