Glass Mapper Droplink 显示名称而不是 Guid

Glass Mapper Droplink Show Name instead of Guid

我正在使用 glass mapper,我的模板中有一个下拉链接列表。当我尝试检索该项目时,它会在下拉链接中带回选定的 guid 而不是名称。如何显示在下拉链接中选择的名称与 GUID?

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

否则,您应该为包含项目名称的链接项目创建一个新的 class,然后将映射的 属性 更改为 return 而 class一个字符串。

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

我正在为 techphoria414 的答案提供一个工作示例以供将来使用。

假设您的链接字段包含 KeyValuePair 类型的项目:

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

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

}

如果您的下拉链接字段是来自模板 ColourBar 的 SelectColourBar

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

这会将 SelectColourBar 映射到 KeyValuePair 模型,然后可以访问键或值。