У меня есть таблица результатов в моем представлении, и когда я нажимаю кнопку Изменить, открывается модальное всплывающее окно с полями, заполненными формой.
Проблема в том, что в выпадающем списке множественного выбора не отображаются выбранные элементы.
Когда я делаю то же самое, используя вид (без модала), это работает. Я полагаю, что проблема в Модале как-то.
Мой взгляд с модалом:
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<div class="row">
<div class="col-md-9">
<h3 class="modal-title" id="editTitle">Edit Effect List</h3>
</div>
<div class="col-md-1">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
</div>
<div class="modal-body">
@using (@Html.BeginForm("Submit", "EffectsList"))
{
<div class="form-group" valing="center">
<div class="row">
<div class="col-md-4">
@Html.LabelFor(m => m.UserGroupID, new { @class = "text-capitalize", style = "margin-top: 6px;" })
@Html.DropDownList("ID", (MultiSelectList)ViewBag.Categories, new { multiple = "multiple" })
</div>
</div>
</div>
}
</div>
<div class="modal-footer">
<div class="row">
<div class="col-md-2">
<button type="submit" class="btn btn-primary">Update</button>
</div>
<div class="col-md-2">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
Мой контроллер, как показано ниже:
public ActionResult Edit(string Project, int ID)
{
var viewModelEdit = GetEffectListData(ID);
var categories = viewModelEdit.UserGroups.Select(c => new {ID = c.ID, Groupname = c.Groupname}).ToList();
ViewBag.Categories = new MultiSelectList(categories, "ID", "Groupname", new[] { 1, 3, 7 });
return View("Edit",viewModelEdit);
}
Также в том, что я называю это Действие, как показано ниже:
...
<div id="modal" class="modal fade" role="dialog"/>
...
<script>
//Call for Modals
$(function () {
$(".edit").click(function () {
var id = $(this).attr("data-id");
alert(id);
$("#modal").load("Edit?Project=@Model.Project&ID=" + id, function () {
$("#modal").modal();
})
});
})
</script>
В дополнение к приведенному выше коду я провел больше тестов и нашел два способа создать выпадающий список с тем же списком.
Если вы видите, что мой MultiSelectList прав. Значения были правильно установлены как выбранные, но они не отображаются в раскрывающемся списке.