Я создал Модели Glassmapper для всех предметов, у меня есть дроплинк в одном из элементов Sitecore. Ниже приведена модель для элемента с полем отвода.
[SitecoreClass]
public class Field:BaseItem
{
[SitecoreField("Mapper Item")]
public virtual LinkedItem MapperItem { get; set; }
}
Поле "Mapper Item" - это поле droplink в sitecore, класс BaseItem
имеет все базовые свойства sitecore:
[SitecoreId]
public virtual Guid Id { get; set; }
[SitecoreInfo(SitecoreInfoType.Name)]
public virtual string Name { get; set; }
[SitecoreInfo(SitecoreInfoType.DisplayName)]
public virtual string DisplayName { get; set; }
[SitecoreInfo(SitecoreInfoType.Url)]
public virtual string Url { get; set; }
[SitecoreInfo(SitecoreInfoType.Path)]
public virtual string Path { get; set; }
[SitecoreInfo(SitecoreInfoType.ContentPath)]
public virtual string ContentPath { get; set; }
[SitecoreInfo(SitecoreInfoType.TemplateId)]
public virtual Guid TemplateId { get; set; }
[SitecoreInfo(SitecoreInfoType.TemplateName)]
public virtual string TemplatedName { get; set; }
[SitecoreField("__created")]
public virtual DateTime Created { get; set; }
[SitecoreField("__updated")]
public virtual DateTime Updated { get; set; }
и LinkedItem
обладает следующими свойствами:
[SitecoreClass]
public class LinkedItem:BaseItem
{
[SitecoreField("Field ID")]
public virtual string FieldID { get; set; }
[SitecoreField("Display Name")]
public virtual string DisplayName { get; set; }
[SitecoreField("Field Type")]
public virtual string FieldType { get; set; }
}
Я получаю LinkedItem
объекта в MapperItem
собственности, когда я доступ к Field
объекту, но если я пытаюсь установить MapperItem
свойство его не сохранить его в соответствующем поле (поле "Mapper Item"), но я не получаю ошибку,
Я использую следующий код для установки дроплинка
fieldItem.MapperItem = ItemUtility.GetItem<LinkedItem>(new Guid("some valid guid available in the droplist source"));
Похоже, вы на старой версии Glass Mapper? Попробуйте добавить ссылку на шаблон так:
[SitecoreClass(TemplateId = "{5281CBCF-1A2D-413A-B182-2854FC6B9176}")]
В новейшей версии он должен быть установлен следующим образом:
Пространство имен должно быть: using Glass.Mapper.Sc.Configuration.Attributes;
Классы должны иметь атрибут: [SitecoreType (AutoMap = true)]
Эта ссылка содержит хороший снимок экрана правильной импликации для вышеупомянутого: http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial11.aspx
Что нужно проверить:
Установлен ли правильный пакет nuget/вы можете установить последнюю версию: http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial1.aspx
Уникально ли имя поля "Элемент карты"? Если не Sitecore/Glass выберет первый найденный не всегда правильный.