我正在寻找一种方法来检索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的值。任何有关如何获取价值的指标将不胜感激。
您是否尝试过使用AlternativeUrlInfoProvider
类?
如果您有此页面,则可以执行以下操作:
var altUrl = AlternativeUrlInfoProvider.GetAlternativeUrls()
.Where("AlternativeUrlDocumentID", QueryOperator.Equals, page.DocumentID).FirstOrDefault();
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。