How does a multiple select list work with model binding in ASP.NET MVC?

Simpatico picture Simpatico · Aug 10, 2009 · Viewed 69.4k times · Source

If you have a select list set to multiple in ASP.NET MVC, how does the modelbinding work?

What does it return for your selected items, an array?

<SELECT NAME="toppings" MULTIPLE SIZE=5>
    <option value="mushrooms">mushrooms</option>
    <option value="greenpeppers">green peppers</option>
    <option value="onions">onions</option>
    <option value="tomatoes">tomatoes</option>
    <option value="olives">olives</option>
</SELECT>

Answer

Sam Wessel picture Sam Wessel · Aug 10, 2009

Yes, by default a multiselectlist will post through an array of the selected values.

This article has further information, including how to use strongly-typed views with a multiselectlist.

From the linked "article":

  • Your model or view model class needs a collection property for the IDs for the selected option items, e.g. List<int> ToppingIds.
  • In the controller action method to which the form containing your multi-select-list POSTs, you can access the selected option items thru the collection property you added to the model or view model class.