Sitecore:页面的基本模板项目

问题描述 投票:0回答:1

我在Sitecore中有一个页面项,并且我知道它是从某个基本模板派生的。我具有该基本模板ID,但我想获取此基本模板的实例,该实例是我页面的一部分。我希望将其作为项目,因此例如可以获取页面内部模板的ID。更清楚地说:称为模板A的A1的页面-template A具有模板B作为基本模板-B是作为一个实例B1的页面A1的一部分(特定于页面A1的字段值)如何获得B1作为独立的商品/ ID?任何帮助表示赞赏。谢谢。

asp.net asp.net-mvc sitecore sitecore8.1
1个回答
0
投票

不确定您的意思吗?为什么要获取继承模板的实例?该项目将通过item.fields [templateBFieldId] .Value

使您继承的所有字段都可用

您可以执行类似检查当前项目是否从该模板继承的操作..诸如此类的操作:

public static bool InheritsFrom(this Item item, ID templateId)
    {
        return item.Template.DoesTemplateInheritFrom(templateId);
    }

    public static bool DoesTemplateInheritFrom(this TemplateItem template, ID templateId)
    {
        if (template == null || templateId.IsNull)
            return false;
        if (!(template.ID == templateId))
            return template.DoesTemplateInheritFrom(TemplateManager.GetTemplate(templateId, template.Database));
        return true;
    }

private static bool DoesTemplateInheritFrom(this TemplateItem template, Template baseTemplate)
        {
            if (baseTemplate == null)
                return false;

            return TemplateManager.GetTemplate(template.ID, template.Database).DescendsFromOrEquals(baseTemplate.ID);
        }
© www.soinside.com 2019 - 2024. All rights reserved.