我正在尝试通过将 Ektron CMS 与 ASP .Net 一起使用来显示分类学中的内容
通过使用分类路径,我得到了 id 并尝试显示内容。但我得到的内容为空。
请让我知道解决此问题的可能解决方案。等待专家解答。
谢谢,
我正在尝试通过将 Ektron CMS 与 ASP .Net 一起使用来显示分类学中的内容
通过使用分类路径,我得到了 id 并尝试显示内容。但我得到的内容为空。
请让我知道解决此问题的可能解决方案。等待专家解答。
谢谢,
在我的开发环境中,我有以下分类:
const string eventsTaxonomyPath = "\\Upcoming Events";
const long eventsTaxonomyId = 89;
听起来您已经在我喜欢称之为“Legacy API”的地方找到了这种方法(或类似的方法):
var taxonomyApi = new Ektron.Cms.API.Content.Taxonomy();
var taxonomyId = taxonomyApi.GetTaxonomyIdByPath(eventsTaxonomyPath);
如果没有关于您使用的版本的任何信息,我会假设它是最近的(8.5+)版本。框架 API 使得从给定分类中获取内容变得非常容易。以下是在 v9.0 上工作的几种方式,并且很可能在任何 8.5+ 中工作——在开发人员简报网络广播中,v9 中框架 API 的唯一主要变化是包含电子商务命名空间。
通过以下方式获取完整的分类树TaxonomyManager
:
var taxonomyItemManager = new Ektron.Cms.Framework.Organization.TaxonomyManager();
var taxData = taxonomyItemManager.GetTree(eventsTaxonomyId, includeItems: true);
通过以下方式从给定的分类文件夹中递归获取所有内容ContentManager
:
var contentManager = new Ektron.Cms.Framework.Content.ContentManager();
var criteria = new ContentTaxonomyCriteria();
criteria.AddFilter(eventsTaxonomyPath, true);
criteria.ReturnMetadata = true;
var content = contentManager.GetList(criteria);
该ContentManager
方法的潜在缺点是您丢失了分层分类结构。使用 的好处ContentManager
是您可以告诉它包含每个内容块的所有元数据。TaxonomyManager
使用or是不可能的TaxonomyItemManager
。
我的猜测是,您默认使用的“按分类获取内容”功能不会获取内容。你可以——
a) 使用 ID 通过内容管理器 API 获取内容 b) 调查您正在使用的函数是否具有包含内容的覆盖。