使用 Select2 将下拉列表中的多个 select 值绑定到字符串

Binding multiple select values in a dropdownlist to a string using Select2

我正在使用 http://select2.github.io/select2/ 的 JQuery Select2 插件,但在将模型绑定到多个项目时遇到问题。

我知道当对多个项目使用 Select2 时,您可以创建一个单独的实体来保存存储的项目,但在我的例子中,我想使用逗号分隔的列表。

我的查看代码在这里:

<div class="col-xs-3">
    @Html.DropDownListFor(
    x => x.Quote.TypeofRoof,
    Model.RoofTypes,
    "", new { @class = "ddl", @multiple = "multiple", @style = "width:100%;height:35px" })
</div>

TypeofRoof 是我引用中的一个字符串 class:

public string TypeofRoof { get; set; }

我的问题是,当我提交我的表单并选择了多个项目时,只有第一个被保存:

我想要的是让模型逗号分隔值,即:

"Metal, Terracotta"

使用 ListBoxFor 而不是 DropDownListFor。让你字段数组类型:

public string[] TypeofRoof { get; set; }

然后在视图上:

@Html.ListBoxFor(
    x => x.Quote.TypeofRoof,
    Model.RoofTypes,
    new { @class = "ddl", multiple = "multiple", @style = "width:100%;height:35px" })