为什么营销人员的Web表单没有在我的自定义保存操作中正确填充选定的DropList值?

时间:2016-02-26 00:04:46

标签: sitecore web-forms-for-marketers

在我的自定义保存操作中,我遍历表单字段(AdaptedControlResult对象)。任何表单字段都是DropList(来自任何来源 - 手动输入的值或项目查找)返回字符串值System.Collections.Generic.List`1[System.String]

现在,重要的是要知道,它没有返回实际的列表。它返回带有该值的文字字符串

所以,这个电话:

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属性中(莫名其妙地)。我只是检测到并使用它,但它不一致 - 例如,对于文本框字段类型,单词&#34; multiline&#34;出现在那里。

所有其他字段类型都可以正常工作 - 我有几个文本输入字段和一些单选按钮列表。它只是DropList字段。

获得这个的诀窍是什么?

1 个答案:

答案 0 :(得分:5)

在MVC中使用WFFM模块时,这是Sitecore中的一个已知错误。您可以在此知识库文章中找到更多详细信息 - Incorrect data is saved for list fields in WFFM MVC

此修复程序列在kb文章中,具体取决于您使用的Sitecore的确切版本。很抱歉只提供了一个链接答案,但修复程序需要多个步骤,并且文章中附有修复程序的下载。