2016-09-16 4 views
4

Я создал два Sitecore templatates MenuItem и MainNavigation. я создал два интерфейса Wich основаны на следующих шаблонов:Карта Droplist item to complextype with Glass.Mapper

[SitecoreType(TemplateId = "{C824E484-F4A6-475C-AFAF-308FF4BBA5A9}", AutoMap = true)] 
public interface IMenuItem 
{ 
    string Title { get; set; } 
    IEnumerable<IMenuItem> SubMenuItems { get; set; } 
} 
[SitecoreType(TemplateId = "{68947CC0-7658-4188-889D-4E88B84F3BC2}", AutoMap = true)] 
public interface IMainNavigation 
{   
    IMenuItem MenuHeaderItem { get; set; } 

    IEnumerable<IMenuItem> MenuItems { get; set; } 
} 

отображение MenuItems из MultiList работает. Отображение MenuHeaderItem из Droplist - нет. В шаблоне я предоставил запрос в источнике данных, поэтому можно выбрать только пункты MenuItems.

Как я могу сделать это картографирование?

Я попытался v4.0.5.54 и теперь я обновился до версии 4.2.1.188

+0

Ваши модели выглядят правильно, хотя вы не _need_, чтобы установить атрибут «InferType» ... дважды проверьте свой шаблон, что поле называется точно «MenuHeaderItem» без пробелов в имени. – jammykam

+0

Я удалил атрибут InferType и скопировал в него имя свойства из шаблона. Но отображение все равно не работает. – Rene

ответ

7

Я сам нашел ответ. В шаблоне я должен использовать sitecore типа Droplink вместо DropList.

Droplist сохраняет только выбранное имя элемента в виде строки. Droplink также сохраняет GUID.

+0

Отлично, спасибо! –

1

Что делать, если вы попытаетесь поставить эту аннотацию (см ниже) для имущества, которое не заселенной:

[SitecoreField(FieldName = "MenuHeaderItem", FieldType = SitecoreFieldType.Droplist)] 
+0

Жаль, что это не сработает. – Rene

 Смежные вопросы

  • Нет связанных вопросов^_^