2016-09-16 4 views
4

私は2つのSitecoreテンプレートMenuItemとMainNavigationを作成しました。私は2つのインターフェイスがWICH作成した は、これらのテンプレートに基づいています:Glass.Mapperを使用してDroplistアイテムをcomplextypeにマップします

[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

+0

'InferType'属性を設定する必要はありませんが、あなたのモデルは正しいように見えます...名前にスペースを入れずに、フィールド名が正確に' MenuHeaderItem'という名前のテンプレートをダブルチェックしてください。 – jammykam

+0

InferType属性を削除し、テンプレートからプロパティ名をコピーしてコピーします。しかし、マッピングはまだ機能しません。 – Rene

答えて

7

私は自分自身で答えを見つけました。テンプレートでは、の代わりにのドロップダウンリンクの代わりに、サイトコードタイプを使用する必要があります。

Droplistは選択した項目名のみを文字列として保存します。 DroplinkにはGUIDも格納されます。

+0

すばらしい、ありがとう!! –

1

に更新しています

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

申し訳ありませんが動作しません。 – Rene

関連する問題