Access Kentico 12备用URL值

问题描述 投票:2回答:2

我正在寻找一种方法来检索kentico中页面的备用URL值。

遵循此示例以在Kentico 12 SP中启用替代URL:https://docs.kentico.com/k12sp/developing-websites/configuring-page-urls-on-mvc-sites/enabling-alternative-urls-for-pages

我现在正试图以编程方式访问备用URL的值。任何有关如何获取价值的指标将不胜感激。

kentico kentico-mvc kentico-12
2个回答
2
投票

您是否尝试过使用AlternativeUrlInfoProvider类?

如果您有此页面,则可以执行以下操作:

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

3
投票
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是带有alturl和url对的表。然后,我传入一个字符串作为别名路径,尝试找到它作为treeprovider,如果我找不到它,我运行它来链接备用网址(给定的字符串),如果存在,它将返回与documentId的配对。

[如果您要尝试从treenode获取替代URL,请运行dataquery,其中AlternativeUrlDocumentID = treennode的documentid。

© www.soinside.com 2019 - 2024. All rights reserved.