在Kentico 8.1中迭代Page Alias

时间:2015-04-07 03:33:42

标签: kentico

有没有办法在代码C#中迭代网站中每个Kentico页面的所有页面别名(URL)?

我正在使用Kentico 8.1

1 个答案:

答案 0 :(得分:1)

你必须使用DocumentAliasInfoProvider来做到这一点。

// Specify site identifier
var siteId = 3;
// Get all docs
var docs = DocumentHelper.GetDocuments().Where("NodeSiteID", QueryOperator.Equals, siteId).Columns("NodeID");
foreach (var doc in docs)
{
    // Iterate through docs and retrieve aliases for each of them
    var aliases = DocumentAliasInfoProvider.GetDocumentAliases().Where("AliasNodeID", QueryOperator.Equals, doc.NodeID);
    foreach (var alias in aliases)
    {
        lbl.Text += alias.AliasURLPath + "<br />";
    }
}

如果您不想遍历文档,可以直接选择网站的别名:

var aliases2 = DocumentAliasInfoProvider.GetDocumentAliases().Where("AliasSiteID", QueryOperator.Equals, siteId);
foreach (var alias in aliases2)
{
    lbl.Text += alias.AliasURLPath + "<br />";
}

可以通过调用:

来检索站点标识符
// For sites other than current
var siteId = SiteInfoProvider.GetSiteID("codename_of_your_site");
// OR
var siteId = SiteContext.CurrentSiteID;

请参阅API Examplesenter image description here