我一直在尝试使用玻璃映射器实现以下目标,但无法使其正常工作。
我有一个主页模板,它本身没有任何字段,但继承了以下两个模板:
Navigation Template
Fields: Navigation Title
Meta Information Template
Fields: Page Title, Meta Description
我创建了相应的接口/类,如下所示:
[SitecoreType(TemplateId = "{5BAB563C-12AD-4398-8C4A-BF623F7DBCDC}", AutoMap = true)]
public interface INavigation
{
[SitecoreField(FieldName = "Navigation Title")]
string NavigationTitle { get; set; }
}
[SitecoreType(TemplateId = "{95539498-31A5-4CB5-8DD6-C422D505C482}", AutoMap = true)]
public interface IMetaInformation
{
[SitecoreField]
string PageTitle { get; set; }
[SitecoreField]
string MetaDescription { get; set; }
}
[SitecoreType(TemplateId = "{F08693E5-8660-4B13-BBD6-7B9DC6091750}", AutoMap = true)]
public class HomePage : INavigation, IMetaInformation
{
public virtual string NavigationTitle { get; set; }
public virtual string PageTitle { get; set; }
public virtual string MetaDescription { get; set; }
}
然后当我尝试访问我的页面时,所有属性始终为空:
var context = new SitecoreContext();
var page = context.GetCurrentItem<HomePage>();
我已经尝试了几种不同的方法,但没有任何效果。此外,不同教程中描述的内容也不起作用。唯一有效的是当我直接在主页模板上添加字段时,但我不希望这样,因为我有多个页面类型,因此我想继承这些字段。
有谁知道我在这里缺少什么?!顺便说一句,我正在使用带有 .NET 4.5 的 Sitecore 7,如果这有所作为的话。