Мы используем 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
Что-то мне нужно здесь настроить, разрешения для определенного типа страниц?