(извините, здесь есть несколько элементов, но никто, кажется, не позволяет мне работать.)
Я хочу создать DropDownList, который допускает множественный выбор. Я могу заполнить список, но я не могу заставить текущие выбранные значения работать.
В моем контроллере есть следующее:
ViewBag.PropertyGroups = from g in db.eFinGroups
where g.GroupType.Contents == "P"
select new
{
Key = g.Key,
Value = g.Description,
Selected = true
};
ViewBag.SelectedPropertyGroups = from g in company.Entities
.First().Properties.First().PropertyGroups
select new {
g.eFinGroup.Key,
Value = g.eFinGroup.Description };
В представлении у меня есть:
@Html.DropDownListFor(model => model.PropertyGroupsX,
new MultiSelectList(ViewBag.PropertyGroups
, "Key", "Value"
, ViewBag.SelectedPropertyGroups),
new { @class = "chzn-select", data_placeholder = "Choose a Property Group", multiple = "multiple", style = "width:350px;" })
PropertyGroupX - это строка [] в модели.
Я пробовал все типы итераций с выбранными свойствами... передавая только значение, просто ключ, оба и т.д.
Кроме того, какой тип должен быть PropertyGroupX? Правильно ли строковый массив? Или это словарь, содержащий текущие классы свойств? Мне действительно трудно найти документ об этом.
Кто-то предложил мне использовать ListBoxFor. Я изменил это и все еще имею ту же проблему. Выбранные значения не будут выбраны, если выбраны теги параметров. Вот что я пробовал:
@Html.ListBoxFor(model = > model.PropertyGroups, новый MultiSelectList (ViewBag.PropertyGroups, "Key", "Value" ))
Я попробовал model.PropertyGroups как набор строк, соответствующих значениям, как набор рекомендаций, соответствующих этим идентификаторам, и как анонимный тип с ключом и значением для соответствия элементам в ViewBag. Кажется, что ничего не работает.