WFFM - Sitecore:将下拉列表链接到用户个人资料

WFFM - Sitecore : linking dropdown to user profile

我正在使用 Sitecore 8 Update 2 和 WFFM 模块。 我使用 WFFM 创建了一个注册页面,除了下拉列表中的值(邮政编码、城市、性别……)外,一切正常

我 link 将所有表单字段编辑到配置文件字段,但这些值从未被填写。我尝试 link 将表单下拉列表编辑到配置文件的下拉字段,一个简单的配置文件上的文本字段,但它从未填写任何值。

有谁知道这是为什么以及我可以对 link 这些字段做什么?

听起来可能是这个错误:

http://www.cmsbestpractices.com/bug-sitecore-8-with-web-forms-for-marketers-drop-list-entries-not-being-properly-recorded-in-xdb/

使用 Robomongo 检查值是否正确存储在 MongoDB。

这是 WFFM 中的错误。要修复它,请将下面的代码添加到您的解决方案中,然后转到项目 /sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Drop List 并将字段 MVC Type 设置为 {your namespace}.DropListField,[your dll name}

namespace {your namespace}
{
using System.Collections.Generic;
using System.Linq;

using Sitecore.Data.Items;
using Sitecore.Form.Core.Controls.Data;

/// <summary>
/// The drop list field.
/// </summary>
public class DropListField : Sitecore.Forms.Mvc.Models.Fields.DropListField
{
    /// <summary>
    /// Initialises a new instance of the <see cref="DropListField"/> class.
    /// </summary>
    /// <param name="item">
    /// The item.
    /// </param>
    public DropListField(Item item)
        : base(item)
    {
    }

    /// <summary>
    /// The get result.
    /// </summary>
    /// <returns>
    /// The <see cref="ControlResult"/>.
    /// </returns>
    public override ControlResult GetResult()
    {
        var value = this.Value as List<string>;
        var selectListItem = this.Items.SingleOrDefault(x => x.Value == value.First());
        var str = selectListItem != null ? selectListItem.Text : string.Empty;
        return new ControlResult(this.ID.ToString(), this.Title, selectListItem != null ? selectListItem.Value : string.Empty, str);
    }
}
}