访问 Kentico 12 替代 URL 值

Access Kentico 12 Alternative URL value

我正在寻找一种方法来检索 kentico 页面的替代 URL 值。

按照此示例在 Kentico 12 SP 中启用备用网址:https://docs.kentico.com/k12sp/developing-websites/configuring-page-urls-on-mvc-sites/enabling-alternative-urls-for-pages

我现在无法尝试以编程方式访问备选 URL 的值。任何关于我如何获得价值的指示都将不胜感激。

var altLink = new DataQuery()
                .From("CMS_AlternativeURL")
                .Where("AlternativeUrlUrl = @URL", new QueryDataParameters { new 
DataParameter("@URL", altURL) })
                .Execute()
                ?.Tables[0]
                ?.AsEnumerable();

            if (altLink != null)
            {
                var altLinkFirst = altLink
                    .ToList()
                    .FirstOrDefault();
                page = new TreeProvider()
                    .SelectSingleDocument(altLinkFirst.Field<int>("AlternativeUrlDocumentID"));

所以 CMS_AlternativeURL 是 table 与 alturl 和 url 的配对。然后我传入一个字符串作为别名路径,尝试找到它的 treeprovider 如果我找不到它我 运行 这个链接替代 url (给定的字符串)并且它将 return 与 documentId 配对(如果存在)。

如果您尝试从树节点获取替代 urls,运行 数据查询,其中 AlternativeUrlDocumentID = 树节点的文档 ID。

您是否尝试过使用 AlternativeUrlInfoProvider class?

如果你有页面,你可以这样做:

   var altUrl = AlternativeUrlInfoProvider.GetAlternativeUrls()
                .Where("AlternativeUrlDocumentID", QueryOperator.Equals, page.DocumentID).FirstOrDefault();