Kentico 文档获取页面元数据自定义页面类型
Kentico Document Get Page Meta Data Custom Page Type
当尝试在自定义页面类型 TreeNode 上使用 GetStringValue()
检索 DocumentPageTitle
和 DocumentPageDescription
时,结果总是返回默认值(在本例中为空字符串) 传递到方法中。
我能够成功检索其他列值以及标准文档属性,例如 DocumentName
、DocumentID
和 AbsoluteURL
,但不能检索文档元属性。
document/page 的 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);
我试过设置选项 Inherits fields from page type to "Page (menu item)",但这没有帮助。
自定义页面类型是否需要特定继承或激活特定设置才能访问这些值?或者,如果我认为 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));
当自定义页面类型 document/page 继承自 parent/global 值时,DocumentPageTitle
和 DocumentPageDescription
返回为 null。
当不继承时,我能够使用以下方法获取属性,而在发生继承时回退到父值:
string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle);
此方法来自 Kentico DevNet 上的以下问题。
感谢您的帮助和建议,不胜感激。
当尝试在自定义页面类型 TreeNode 上使用 GetStringValue()
检索 DocumentPageTitle
和 DocumentPageDescription
时,结果总是返回默认值(在本例中为空字符串) 传递到方法中。
我能够成功检索其他列值以及标准文档属性,例如 DocumentName
、DocumentID
和 AbsoluteURL
,但不能检索文档元属性。
document/page 的 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);
我试过设置选项 Inherits fields from page type to "Page (menu item)",但这没有帮助。
自定义页面类型是否需要特定继承或激活特定设置才能访问这些值?或者,如果我认为 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));
当自定义页面类型 document/page 继承自 parent/global 值时,DocumentPageTitle
和 DocumentPageDescription
返回为 null。
当不继承时,我能够使用以下方法获取属性,而在发生继承时回退到父值:
string documentPageTitle = document.GetStringValue("DocumentPageTitle", DocumentContext.CurrentTitle);
此方法来自 Kentico DevNet 上的以下问题。
感谢您的帮助和建议,不胜感激。