以编程方式检索可以在Episerver中分配给页面的类别

本文关键字:分配 方式 编程 检索 Episerver | 更新日期: 2023-09-27 17:58:10

有人知道如何以编程方式检索可分配给Episerver中页面的类别吗C#是我正在使用的编程语言,但VB中的一个例子也可以。

以编程方式检索可以在Episerver中分配给页面的类别

如果您想要CMS中定义的所有类别,那么首先从获取根类别及其所有子类别开始。

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

如果只想检索在当前页面上选择的类别,请遍历当前页面上的Category属性。它返回一个CategoryList对象,该对象包含所选类别的Id。

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.Category类。一个好的起点是Category.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