我在Sitecore中映射到Rules
数据字段时遇到一些问题。我有一个渲染参数模板,它有一个名为"重定向规则"的数据字段
我使用TDS和Glass将对象映射回Sitecore。在生成的类中,我得到以下内容:
/// <summary>
/// The Redirect Rule field.
/// <para></para>
/// <para>Field Type: Rules</para>
/// <para>Field ID: 659373d6-c5c5-4851-aa1f-066f53218780</para>
/// <para>Custom Data: </para>
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Team Development for Sitecore - GlassItem.tt", "1.0")]
[SitecoreField(IMy_Name_Rendering_ParametersConstants.Redirect_RuleFieldName)]
public virtual object /* UNKNOWN */ Redirect_Rule {get; set;}
当我试图通过获得视图渲染中"重定向规则"字段的值时
GetRenderingParameters<My_Name_Rendering_Parameters>();
"重定向规则"属性为null。我已经通过在体验编辑器中检查该字段来验证该字段是否填充了规则。
有线索表明可能发生了什么吗?
Craig。在此处查找修改后的T4模板,该模板将"规则"字段映射到字符串值:https://gist.github.com/patrickperrone/9626cccbd044cc418539
下面是我的博客文章,详细介绍了这一点。
摘录自我的帖子:
基本问题是glassv3item.tt模板不知道如何以处理CCD_ 2字段。
GetGlassFieldByType
方法是负责为映射字段分配类型。它使用switch
语句。我们的规则领域一直在下降将字段映射到CCD_ 6的CCD_。我们需要添加field.Type
值等于"规则"时的大小写。
简言之:当值等于"rules"时,我使用string
类型作为映射的field.Type
。
你可以在这里的246-247线看到这个。