有没有人知道如何以编程方式检索可以分配给 Episerver 中的网页的类别? C#是我正在使用的编程语言,但VB中的一个例子也可以。
答案 0 :(得分:3)
如果您在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
}
答案 1 :(得分:2)
由于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
}
答案 2 :(得分:0)
您使用EPiServer.DataAbstraction.Category类。一个好的起点是Category.GetRoot()方法:
此页面上也有代码示例: