WFFM MVCのリスト フィールドに不正なデータが保存される


説明

MVCレイアウトでWeb Forms for Marketersモジュールのリスト フィールドを使用する際、フィールド値が空の文字列として保存されたり、値にタイプ名が含まれたりする可能性があります:

System.Collections.Generic.List`1[System.String]

「電子メールメッセージを送信」保存アクションでリスト フィールド値を使用する際、メッセージのテキストに不正な値が表示される可能性があります。

この問題は、WFFMバージョン2.4 rev.140117~バージョン2.4 rev. 141008で発生します。

解決策

Sitecore CMSバージョン7.2の場合:

  1. このパッチSitecore.Support.424929.dllファイルを\binフォルダに配置します。
  2. Masterデータベースの/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Drop Listアイテムに移動し、MVC Typeフィールド値を以下の文字列に置き換えます:
    Sitecore.Support.Forms.Mvc.Models.Fields.DropListField,Sitecore.Support.424929
  3. アイテムをパブリッシュします。

Sitecore XPバージョン7.5~8.0の場合:

  1. ご利用のWFFMモジュールのバージョンに対応するアーカイブをダウンロードします:
       WFFM 2.5(更新したバージョンのすべて)、8.0 rev. 141217、8.0 rev. 150224専用:Sitecore.Support.425353
       WFFM 8.0 rev. 150429、8.0 rev. 150625専用:Sitecore.Support.425353
  2. Sitecore.Support.425353.dllアセンブリを\binフォルダに解凍します。
  3. \Website\Views\Form\EditorTemplates\DropListField.cshtmlファイルを修正します:
    次の行を
    @model Sitecore.Forms.Mvc.Models.Fields.DropListField
    次の行に置き換えます:
    @model Sitecore.Support.Forms.Mvc.Models.Fields.DropListField
  4. /Website/Views/Form/EditorTemplates/ListBoxField.cshtmlファイルを修正します。
    次の行を
    @Sitecore.Forms.Mvc.Models.Fields.ListBoxField
    次の行に置き換えます:
    @Sitecore.Support.Forms.Mvc.Models.Fields.ListBoxField
  5. Masterデータベース/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Drop Listアイテムに移動し、そのMVC Type値を次のように設定します: 
    Sitecore.Support.Forms.Mvc.Models.Fields.DropListField,Sitecore.Support.425353
  6. Masterデータベース/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/List Boxアイテムに移動し、そのMVC Type値を次のように設定します:
    Sitecore.Support.Forms.Mvc.Models.Fields.ListBoxField, Sitecore.Support.425353
  7. Masterデータベース/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Radio Listアイテムに移動し、そのMVC Type値を次のように設定します:
    Sitecore.Support.Forms.Mvc.Models.Fields.RadioListField,Sitecore.Support.425353
  8. 変更をパブリッシュします。