Я пытался добиться следующего с помощью Glass Mapper, но не могу заставить его работать.
У меня есть шаблон домашней страницы, который не имеет полей, но наследует следующие два шаблона:
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>();
Я пробовал несколько разных подходов к этому, но ничего не работает. Также то, что было описано в разных туториалах, не работало. Единственное, что работает, — это когда я добавляю поля непосредственно в шаблон домашней страницы, но мне это не нужно, поскольку у меня более одного типа страницы, и поэтому я хочу наследовать поля.
Кто-нибудь знает, что мне здесь не хватает?! Кстати, я использую Sitecore 7 с .NET 4.5, если это имеет значение.