0

我对模板继承有疑问:

我有包含以下字段的基本模板(比如说Parent ):

  • 主题(指定查询的下拉列表)

而模板(Child)就是从它衍生而来的。

问题是,一旦我继承了Parent并使用 TDS 为它生成了模型,我得到了:

public virtual string Theme {get; set;}

但预计会得到指导课。一旦我切换主题字段以键入Multilist,我得到:

public virtual IEnumerable<Guid> Themes {get; set;}

其中有Guid类型...

如何告诉 TDS(GlassMapper) 使用Guid而不是string

4

2 回答 2

2

您已经发现需要使用DropLink字段类型(存储 guiGUID)而不是 DropList(仅存储值)。

Custom Data您可以通过在属性字段中设置对象类型,让 TDS CodeGen 模板返回链接的项目类型,而不是返回 GUID,然后在 Sitecore 中再次查找项目以检索值。

TDS 代码生成器

2 个主要感兴趣的设置:

  • type:对于单个链接的项目,例如 DropLink。生成的代码将输出:

    public virtual AssetLibrary.LookupValue MyFieldName { get; set; }

  • generic: 对于多个链接项,例如 MultiList 字段

    public virtual IEnumerable<AssetLibrary.LookupValue> MyFieldName { get; set; }

由于大多数时候您希望 guid 解析为特定类型,因此这会节省一些样板代码来查找链接项目,Glass 将自动解析为链接项目。

于 2016-12-21T10:24:54.403 回答
0

好的,最后,我在写这个问题时发现了我的错误......我为Theme使用了错误的类型:

应该使用Droplink而不是Droplist

于 2016-12-20T12:01:33.900 回答