Select 列表默认多选

Select list default multiple selection

如何根据之前的搜索设置默认值?

@Html.DropDownListFor(m => m.Filter.FossilTypes,
   new SelectList(Model.Filter.FossilsTypesOptions, "Name", "Name"),
   new { 
       @multiple = "multiple", 
       @placeholder = "Choose one...", 
       @class = "SlectBox" 
})    

我试过了

@Html.DropDownListFor(m => m.Filter.FossilTypes,
   new SelectList(Model.Filter.FossilsTypesOptions, "Name", "Name", Model.Filter.FossilTypesDefault),
   new { 
       @multiple = "multiple", 
       @placeholder = "Choose one...", 
       @class = "SlectBox" 
})    

IEnumerableArrayList 之间切换 Model.Filter.FossilTypesDefault 类型,但没有效果。

您应该使用 ListBoxFor 帮助器而不是 DropDownListFor 用于多个选择值,并将选定的 FossilTypesDefault 作为 @Html.ListBoxFor 帮助器的第一个参数传递,如下所示:

@Html.ListBoxFor(m => m.Filter.FossilTypesDefault, 
   new SelectList(Model.Filter.FossilsTypesOptions, "Name", "Name"),
   new { 
      @placeholder = "Choose one...", 
      @class = "SlectBox" 
})

ListBoxFor 生成 multiple 属性本身。

我猜

FossilTypesDefault 应该是 string[]List<string>