Выбранный MultiSelect не отображает предварительно выбранные значения в режиме редактирования
//MVC View
<div class="control-group">
@Html.LabelFor(x => x.users, new { @class = "control-label" })
<div class="controls">
@Html.ListBoxFor(x => x.SelectedUsers, Model.Users, new { @class = "chosen-select", multiple = "multiple" })
</div>
</div>
<script type="text/javascript">
$(".chosen-select").chosen();
$(".chosen-select").trigger("chosen:updated");
$(".chosen-select").trigger("liszt:updated");
$(".chosen-select").chosen().change();
</script>
//MVC Controller
model.SelectedUsers = User.Where(x => x.ROLE == 2)
.Select(x => new SelectListItem
{
Text = x.Name,
Value = x.Id,
}).ToList();
model.Users = User
.Select(x => new SelectListItem
{
Text = x.Name,
Value = Id,
}).ToList();
У меня 10 пользователей и 3 SelectedUsers, которые возвращаются корректно из действия контроллера. Функциональность создания работает правильно, но во время редактирования я не получаю 3 предварительно выбранных пользователей, выбранных в выбранном элементе управления ListBox. когда я нажимаю на список, он показывает все 10 пользователей. Я пытался реализовать это, используя документацию http://harvesthq.github.io/chosen/ Я не уверен, что это правильный синтаксис или метод для этого в представлении mvc razor. Любая помощь в правильном направлении будет очень полезна, спасибо..
1 ответ
Недвижимость SelectedUsers
должно быть int[]
(or IEnumerable<int>
) не IEnumerable<SelectListItem>
,
Если он содержит значения, соответствующие значениям в параметрах, они будут выбраны.