使用Glass.Mapper将Droplist项映射到complextype

时间:2016-09-16 09:36:25

标签: sitecore glass-mapper

我创建了两个Sitecore模板MenuItem和MainNavigation。 我创建了两个基于这些模板的接口:

 [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; }
}

来自MultiList的映射MenuItem正在运行。 Droplist中的映射MenuHeaderItem不是。 在模板中,我在数据源中提供了一个查询,因此只能选择MenuItems。

如何使此映射有效?

我已经尝试过v4.0.5.54,现在我已经更新到版本4.2.1.188

2 个答案:

答案 0 :(得分:8)

我自己找到了答案。在模板中,我必须使用sitecore类型 Droplink 而不是 DropList

Droplist仅将选定的项目名称存储为字符串。 Droplink还存储GUID。

答案 1 :(得分:0)

如果您尝试将此注释(请参阅下文)用于未填充的属性,该怎么办:

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