Исходя из вашей ревизии, возможно, вам нужно это в коде, который заполняет ваш список выбора:
List<int> selectedValues = new List<int>();
foreach (Product p in store.Products)
selectedValues.Add(p.Id);
var allProductList = new MultiSelectList(allProducts, "Id", "Title", selectedValues);
Я оставлю свой оригинальный ответ ниже, потому что это решит проблему более чистым способом.
Помощник Html.ListBox () хочет передать ему IEnumerable, поэтому вам нужно преобразовать свой список в него, чтобы заполнить список.
Вы можете сделать это с помощью метода расширения, подобного этому:
using System.Collections.Generic;
using System.Web.Mvc;
namespace MvcMockups.Extensions
{
public static class Extensions
{
public static SelectList ToSelectList<T>(this IEnumerable<T> items, string dataValueField, string dataTextField, string selectedValue)
{
return new SelectList(items, dataValueField, dataTextField, selectedValue);
}
}
}
Ваше мнение должно знать о вашем методе расширения:
<%@ Import Namespace="MvcMockups.Extensions"%>
Тогда ваше представление будет содержать:
<%= Html.ListBox("Product", Model.Products.ToSelectList("Id", "Name", "1"))%>