在我的自定义保存操作中,我遍历表单域(AdaptedControlResult
对象)。这是一个DropList(从任何来源 - 手动输入值,或项目查找)任何形式的领域正在恢复的System.Collections.Generic.List`1[System.String]
为什么营销人员的Web表单无法在我的自定义保存操作中正确填充选定的DropList值?
一个字符串值现在,知道这一点很重要,它没有返回一个实际列表。它将返回带有该值的文字字符串。
所以,这个调用:
fields.GetEntryByName("MyFieldName").Value
将返回字符串:System.Collections.Generic.List`1[System.String]
。不是下拉的值。一个字符串说这是一个List<string>
。
我已确认表单的HTML正在呈现正确。我已经手动检查入站HttpContext.Current.Request.Form
值以及...
HttpContext.Current.Request.Form["BGWnjkQqrE6w6sr31IgzrQ.Sections[5].Fields[0].Value"]
即滴的正确选择的值向下(一个Sitecore的ID)。
因此,数据正确输出到表单,并且入站Request.Form
数据也是正确的。某处,Sitecore决定不将所选值填充到AdaptedControlResult
对象中。
另外奇怪的是,对于DropList字段类型,所选值确实出现在Parameters
属性中(莫名其妙地)。我只是检测并使用它,但它不一致 - 例如,对于文本框字段类型,单词“多行”出现在那里。
所有其他字段类型工作正常 - 我有几个文本输入字段和一些单选按钮列表。这只是DropList字段。
得到这个的诀窍是什么?
哦,谢天谢地。我以为我疯了。 – Deane