2016-12-15 8 views
0

Я использую стеклянную карту, и у моего шаблона есть список дроплинков. Когда я пытаюсь восстановить элемент, он возвращает выбранный guid в droplink вместо имени. Как мне показать имя, выбранное в droplink против guid?Glass Mapper Droplink Show Name вместо Guid

ответ

5

Если вы хотите, чтобы имя элемента вместо GUID, почему бы не использовать Droplist? Или вам нужен GUID для других целей? Стек просто возвращает то, что Sitecore фактически хранит в этом случае (что для Droplink будет GUID элемента).

В противном случае вы должны создать новый класс связанного элемента, который включает в себя имя элемента, а затем изменить свойство сопоставленного объекта, чтобы вернуть этот класс вместо строки.

FYI, хотя Droplist может быть проще, использование этого типа поля не является хорошей практикой. Поскольку имя элемента хранится вместо GUID, изменения этого имени не привязываются к привязке элементов.

3

Я даю рабочий пример для ответа Techphoria414 для будущего использования.

Представьте, что ваш droplink поле содержит элементы типа KeyValuePair:

[SitecoreType(TemplateId = "Id")] 
public partial interface IKeyValuePair 
{ 
    [SitecoreField(FieldId = "Id")] 
    string Key { get; set; } 

    [SitecoreField(FieldId = "Id")] 
    string Value { get; set; } 

} 

Если droplink поле SelectColourBar который из шаблона ColourBar

[SitecoreType(TemplateId = "Id")] 
public partial interface IColourBar 
{ 
    [SitecoreField(FieldId = "Id")] 
    IKeyValuePair SelectColourBar { get; set; } 
} 

Это карта SelectColourBar для модели KeyValuePair, то один может получить доступ к ключу или значению.