Я не могу получить элементы с несколькими выборками, отмеченные при открытии в модальном всплывающем окне MVC - PullRequest
0 голосов
/ 18 марта 2019

У меня есть таблица результатов в моем представлении, и когда я нажимаю кнопку Изменить, открывается модальное всплывающее окно с полями, заполненными формой.

Проблема в том, что в выпадающем списке множественного выбора не отображаются выбранные элементы.

Когда я делаю то же самое, используя вид (без модала), это работает. Я полагаю, что проблема в Модале как-то.

Мой взгляд с модалом:

<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">&times;</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>

В дополнение к приведенному выше коду я провел больше тестов и нашел два способа создать выпадающий список с тем же списком.

Picture 1

Если вы видите, что мой MultiSelectList прав. Значения были правильно установлены как выбранные, но они не отображаются в раскрывающемся списке.

Picture 2

...