我正在寻找一种方法来检索 kentico 中页面的替代 URL 值。
按照此示例在 Kentico 12 SP 中启用替代网址:https ://docs.kentico.com/k12sp/developing-websites/configuring-page-urls-on-mvc-sites/enabling-alternative-urls-for-pages
我现在被困在尝试以编程方式访问替代 URL 的值。任何关于我如何获得价值的指针都将不胜感激。
我正在寻找一种方法来检索 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 是 alturl 和 url 配对的表。然后我传入一个字符串作为别名路径,尝试在 treeprovider 中找到它,如果我找不到它,我运行它来链接替代 url(给定的字符串),如果它存在,它将返回与 documentId 的配对。
如果您尝试从树节点获取替代 URL,请运行数据查询,其中 AlternativeUrlDocumentID = 树节点的文档 ID。
您是否尝试过使用 AlternativeUrlInfoProvider
类?
如果您有页面,则可以执行以下操作:
var altUrl = AlternativeUrlInfoProvider.GetAlternativeUrls()
.Where("AlternativeUrlDocumentID", QueryOperator.Equals, page.DocumentID).FirstOrDefault();