好吧,在对工作区文件进行了一些挖掘之后(答案在 \Workarea\controls\content\UrlAliasing\editAliasesTab.ascx.cs 中),当前方法在命名空间中使用了 frameworkAPI 管理器对象Ektron.Cms.Framework.Settings.UrlAliasing
这个对象似乎能够处理手动和自动别名,尽管它的标准“get”方法在我的测试中只返回自动别名,而 getDefaultAlias 方法总是返回一个空字符串。当使用位于“Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasCriteria”中的 Alias Criteria 对象时,管理器会按预期工作,返回所有关联的别名。返回的对象是别名类型的通用对象,并且将通过 isDefault 属性指示它们是否是默认值。
以下将提取所有别名,无论类型如何:
Ektron.Cms.Framework.Settings.UrlAliasing.AliasManager aCRUD = new ektron.Cms.Framework.Settings.UrlAliasing.AliasManager();
Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasCriteria aSelector = new Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasCriteria();
aSelector.AddFilter(Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasProperty.TargetId, Ektron.Cms.Common.CriteriaFilterOperator.EqualTo, contentId);
var allAlias = aCRUD.GetList(aSelector);