我使用的是glass mapper,我的模板中有一个droplink列表。当我试图检索该项目时,它会将所选的guid带回droplink而不是名称。如何显示在droplink和guid中选择的名称?
答案 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模型,然后可以访问键或值。