有没有办法获取sitecore中子项的当前上下文的父项值。
我可以访问标准值,但不能访问当前上下文中字段的实际设置值。
如果能够实现,请告诉我。
答案 0 :(得分:8)
是的,从当前上下文中,您可以按如下方式检索父项(及其所有字段):
MultilistField parentMultilistField = Sitecore.Context.Item.Parent.Fields[...];
var parentTitle = Sitecore.Context.Item.Parent["Title"];
...或使用递归甚至Sitecore查询向上遍历多个级别:
var parentItem = Sitecore.Context.Item.Axes.Select.SelectSingleItem("./ancestor-or-self::*[@@templatekey = 'sometemplate']");
如果您使用的是玻璃贴图,您可以使用[SitecoreParent]或[SitecoreQuery(...)] attribue来装饰您的属性,如下所示:
[SitecoreParent]
public virtual MyBaseItem Parent { get; set; }
[SitecoreQuery("./ancestor-or-self::*[@@templatekey='sometemplate']", IsRelative = true)]
public virtual MyBaseItem RootItem { get; set; }