如何创建具有多个选定值的SelectList?

Mar*_*iah 15 c# razor asp.net-mvc-3

我正在尝试在选择列表中设置多个值:

SelectList List = new SelectList(MyListItems, "valField", "dataField", <selected values>);
Run Code Online (Sandbox Code Playgroud)

我用什么对象/值来选择多个项目?

Rob*_*evy 23

您想使用MultiSelectList而不是具有构造函数来满足您的需求:

public MultiSelectList(
    IEnumerable items,
    string dataValueField,
    string dataTextField,
    IEnumerable selectedValues
)
Run Code Online (Sandbox Code Playgroud)

  • 不,你必须使用Html.ListBox ...原生HTML下拉列表不支持多选.见http://blog.garypretty.co.uk/index.php/2010/02/26/multi-select-list-box-in-asp-net-mvc/ (2认同)
  • @Matus 我知道我现在“来自未来”,但最好坚持使用 Html.ListBox / Html.ListBoxFor 因为 Razor 由于某种原因在使用 DropDownList 或DropDownListFor 与 MultiSelectList。 (2认同)

Afo*_*nça 15

例:

class Person
{
    int Id{ get; set; }
    string Name { get; set; }
}

...

var people = new List<Person>()
{
    new Person{ Id = 1, Name = "Steve" },
    new Person{ Id = 2, Name = "Bill" },
    new Person{ Id = 3, Name = "John" },
    new Person{ Id = 4, Name = "Larry" }
}
SelectList List = new MultiSelectList(people, "Id", "Name", new[]{ 2, 3 });
Run Code Online (Sandbox Code Playgroud)