2016-02-26 18 views
3

在我的自定义保存操作中,我遍历表单域(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字段。

得到这个的诀窍是什么?

回答

5

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

此修补程序在kb文章中列出,并取决于您使用的Sitecore的确切版本。对不起,只提供了一个链接的答案,但有多个步骤reqiured为修复和修复程序的下载是附在文章中。

+1

哦,谢天谢地。我以为我疯了。 – Deane

相关问题