Kentico Document获取页面元数据自定义页面类型

时间:2017-08-15 19:58:27

标签: kentico

尝试在自定义页面类型TreeNode上使用DocumentPageTitle检索DocumentPageDescriptionGetStringValue()时,结果总是返回,因为默认值(在本例中为空字符串)已通过进入方法。

我能够成功检索其他列值以及标准文档属性,例如DocumentNameDocumentIDAbsoluteURL,但不能检索文档元属性。

文档/页面的标签中的相应字段确实包含值,并且默认情况下已成功呈现,例如<meta name="description" content=".." />

// returns empty string
string documentPageDescription = DocumentContext.CurrentDocument.GetString("DocumentPageDescription", string.Empty);

// returns empty string
TreeNode document = parameters[0] as TreeNode;
string documentPageDescription = document.GetStringValue("DocumentPageDescription", string.Empty);

我尝试将选项从页面类型继承字段“设置为”页面(菜单项)“,但这没有帮助。

自定义页面类型是否需要从某些内容继承或者是否已激活特定设置以访问这些值?或者,如果我认为TreeNode实际上不是,我怎么能从这个具有列出的属性的对象中获取TreeNode?

感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:1)

ValidationHelper.GetString(CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("DocumentPageDescription"), string.Empty)

答案 1 :(得分:0)

要检查两件事,一件,您确定要拉动的页面上有元数据吗?第二,您的API实际上是否为该页面提取了所有数据?

我在测试中使用了这些,并且都返回了元数据。

var page = DocumentHelper.GetDocuments().Path("/Articles/Coffee-Beverages-Explained").FirstObject;
Response.Write(page.GetStringValue("DocumentPageDescription", string.Empty));

TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
TreeNode tn = tree.SelectNodes().OnCurrentSite().Path("/Articles/Coffee-Beverages-Explained").FirstObject;
Response.Write(tn.GetStringValue("DocumentPageDescription", string.Empty));

答案 2 :(得分:0)

当自定义页面类型文档/页面继承自父/全局值时,DocumentPageTitleDocumentPageDescription将返回null。

我可以使用以下内容在继承时获取属性,而在继承发生时回退到父值:

string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle);

此方法来自Kentico DevNet上的以下问题。

感谢您的帮助和建议,非常感谢。