Glass Mapper Droplink显示名称而不是Guid

时间:2016-12-15 18:00:33

标签: sitecore glass-mapper

我使用的是glass mapper,我的模板中有一个droplink列表。当我试图检索该项目时,它会将所选的guid带回droplink而不是名称。如何显示在droplink和guid中选择的名称?

2 个答案:

答案 0 :(得分:5)

如果您不喜欢该项目的名称而不是GUID,为什么不使用Droplist?或者您是否需要GUID用于其他目的?在这种情况下,Glass只是返回Sitecore实际存储的内容(对于Droplink,它将是项目GUID)。

否则,您应该为包含项目名称的链接项创建一个新类,然后更改您的映射属性以返回该类而不是字符串。

仅供参考,虽然Droplist可能更容易修复,但使用该字段类型并不是一个好习惯。由于存储了项目名称而不是GUID,因此对该项目名称的更改不会级联到链接项目。

答案 1 :(得分: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模型,然后可以访问键或值。