Программно извлекать категории, которые могут быть назначены страницам в Episerver


Есть ли у кого-нибудь идея о том, как программно получить категории, которые могут быть назначены страницам в Episerver? C# - это язык программирования, который я использую, но пример в VB также подойдет.

3 3

3 ответа:

Если вы после всех категорий, определенных в CMS, то начните с извлечения корневой категории В первую очередь, и все это дети.

Category rootCategory = Category.GetRoot();
CategoryCollection childCategories = rootCategory.Categories;
foreach (Category category in childCategories)
{
    // do whatever
}

Если вы хотите получить только категории, выбранные на текущей странице, то выполните итерацию через свойство Category на текущей странице. Он возвращает объект CategoryList, содержащий идентификаторы выбранных категорий.

foreach (int catId in CurrentPage.Category)
{
    Category category = Category.Find(catId);
    // do whatever
}

Поскольку Category.GetRoot() помечен как устаревший, это решение более правильно в соответствии с Episerver 9:

var categoryRepo = ServiceLocator.Current.GetInstance<CategoryRepository>();
var rootCategory = categoryRepo.GetRoot();
CategoryCollection childCategories = rootCategory.Categories;
foreach (Category category in childCategories)
{
// do whatever
}

Вы используете EPiServer.DataAbstraction.Категория класс. Хорошим местом для начала была бы категория.Метод GetRoot ():

Http://world.episerver.com/Documentation/Class-library/?documentId=cms/7/0ace72d5-11cd-b5cc-4dbe-af38a401f528

На этой странице также есть примеры кода:

Http://world.episerver.com/Documentation/Class-library/?documentId=cms/7/dbaa2f15-e227-1d1c-5142-2f245dd3e664