2016-09-16 75 views
4

我已經創建了兩個Sitecore模板MenuItem和MainNavigation。 我已經創建了兩個接口都基於這些模板至極:從多重表使用Glass.Mapper將Droplist項目映射到複雜類型

[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工作。 來自Droplist的映射MenuHeaderItem不是。 在模板中,我在數據源中提供了一個查詢,所以只能選擇MenuItems。

如何使此映射工作?

我試過v4.0.5.54現在我已經更新到版本4.2.1.188

+0

雖然您不需要設置InferType屬性,但您的模型看起來是正確的...請仔細檢查您的模板,確定該字段的名稱完全是「MenuHeaderItem」,而名稱中沒有任何空格。 – jammykam

+0

我已經刪除了InferType屬性,並從模板中複製粘貼屬性名稱。但映射仍然不起作用。 – Rene

回答

7

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

下拉列表僅將選定的項目名稱存儲爲字符串。 Droplink也存儲GUID。

+0

太好了,謝謝! –

1

如果你試圖把這個註釋(見下文)對未正在填充屬性:

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

對不起,它不工作。 – Rene

相關問題