肯蒂科文档获取页面元数据自定义页面类型



尝试在自定义页面类型 TreeNode 上使用GetStringValue()检索DocumentPageTitleDocumentPageDescription时,结果始终作为传递到方法中的默认值(在本例中为空字符串(返回。

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

文档/页面的Meta选项卡中的相应字段确实具有值,并且默认情况下已成功呈现,例如<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?

感谢您提供的任何帮助。

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

要检查两件事,第一,您确定元数据在您正在提取的页面上可用吗?第二,您的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));

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

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

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

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

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

最新更新