(извините, здесь есть несколько пунктов, но, похоже, ни один из них не позволяет мне работать).
Я хочу создать DropDownList, который допускает множественный выбор.Я могу заполнить список, но не могу заставить работать выбранные значения.
В моем контроллере есть следующее:
<code>ViewBag.PropertyGroups = from g in db.eFinGroups
where g.GroupType.Contents == "P"
select new
{
Key = g.Key,
Value = g.Description,
Selected = true
};</p>
<p>ViewBag.SelectedPropertyGroups = from g in company.Entities
.First().Properties.First().PropertyGroups
select new {
g.eFinGroup.Key,
Value = g.eFinGroup.Description };
В представлении, которое у меня есть:
<code>@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, new MultiSelectList (ViewBag.PropertyGroups, "Key", "Value"))
Я пыталсяmodel.PropertyGroups как коллекция строк, соответствующих значениям, как коллекция Guid, соответствующих этим идентификаторам, и как анонимный тип с ключом и значением для соответствия элементам в ViewBag.Кажется, ничего не работает.