2016-12-15 20 views
0

私はglass mapperを使用しています。テンプレートにはドロップリストがあります。アイテムを取得しようとすると、名前の代わりにドロップダウンに選択されたGUIDが戻されます。ドロップダウンリストで選択した名前とGUIDを表示するにはどうしたらいいですか?Glass Mapper Droplink Guidの代わりに名前を表示

答えて

5

GUIDではなくアイテムの名前を使用する場合は、Droplistを使用してみませんか?または、他の目的のためにGUIDが必要ですか? Glassは、Sitecoreが実際に格納しているもの(Droplinkの場合はGUIDアイテム)を返すだけです。

それ以外の場合は、アイテム名を含むリンクされたアイテムの新しいクラスを作成し、文字列ではなくそのクラスを返すようにマップされたプロパティを変更する必要があります。

FYIでは、Droplistが簡単に修正できるかもしれませんが、そのフィールドタイプを使用するのは良い方法ではありません。 GUIDの代わりにアイテム名が格納されるため、そのアイテム名の変更はアイテムをリンクするのにカスケードしません。

3

今後の使用のためのtechphoria414の回答の実際の例を挙げています。

あなたのドロップリンク・フィールドを想像してみてはKeyValuePairタイプの項目が含まれています

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

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

} 

あなたのドロップリンク・フィールドはテンプレートからColourBar

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

これは、その後、KeyValuePairモデルに1をSelectColourBarをマッピングしますですSelectColourBarある場合キーまたは値にアクセスできます。

関連する問題