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

Kentico文档获取页面元数据自定义页面类型,kentico,Kentico,当尝试在自定义页面类型树节点上使用GetStringValue()检索DocumentPageTitle和DocumentPageDescription时,结果总是作为传递到方法中的默认值(在本例中为空字符串)返回 我能够成功检索其他列值以及标准文档属性,如DocumentName、DocumentID和AbsoluteURL,但不能检索文档元属性 文档/页面的Meta选项卡中的各个字段都有值,并且在默认情况下会在中成功呈现,例如 我尝试过将选项从页面类型继承字段到“页面(菜单项)”,但没有帮助

当尝试在自定义页面类型树节点上使用
GetStringValue()
检索
DocumentPageTitle
DocumentPageDescription
时,结果总是作为传递到方法中的默认值(在本例中为空字符串)返回

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

文档/页面的Meta选项卡中的各个字段都有值,并且在默认情况下会在中成功呈现,例如

我尝试过将选项从页面类型继承字段到“页面(菜单项)”,但没有帮助

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


感谢您提供的任何帮助。

有两件事需要检查,第一件事,您确定您正在提取的页面上有元数据吗?第二,你的API真的在为那个页面提取所有数据吗

ValidationHelper.GetString(CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("DocumentPageDescription"), string.Empty)
我在测试中使用了它们,它们都返回了元数据

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));

当自定义页面类型文档/页面从父/全局值继承时,
DocumentPageTitle
DocumentPageDescription
返回为null

我能够使用以下方法在继承时获取属性,而在继承时返回到父值:

string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle);
这种方法来源于以下问题


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

请不要只在此处张贴代码。试着解释一下为什么这能解决问题。谢谢你的建议。我想我的问题是关于。如果自定义页面类型页面设置为从父级继承,则结果返回为null。我能够通过
DocumentContext.CurrentTitle
DocumentContext.CurrentDescription
获得继承情况下的父元值。不继承时,通过
TreeNode
对象上的
GetStringValue()
获取值工作正常。谢谢我明白了,因为从父项继承时,该项的Description列中没有存储任何实际数据,因此GetValue或GetStringVlaue为null。
string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle);