Обновление списков на основе результатов Ajax с помощью JQuery - PullRequest
0 голосов
/ 21 октября 2019

У меня проблемы с тем, чтобы мои 2 списка работали так, как мне нужно. Я использую asp.net MVC5. У меня есть 2 списка выбора с несколькими вариантами выбора (и несколько других элементов управления) в модальной форме.

Список содержит 1 элемент, который доступен для выбора, пользователь выбирает один или несколько элементов в списке и нажимает кнопку«переместить» их в Listbox2.

При нажатии кнопки я отправляю всю форму через Ajax и «перемещаю» элементы в методе. Теперь Listbox2 должен содержать элементы, выбранные пользователем, а список Listbox1 должен содержать элементы, которые пользователь не выбрал.

Метод в порядке, так как я могу перемещать данные в базе данных, моя проблема заключается в том, какполучите списки, чтобы потом показывать правильные данные.

Это свойства модели, которые я должен передать спискам: -

List<Int64> List1 
List<SelectListItem> List1Items

List<Int64> List2 
List<SelectListItem> List2Items

В каждом случае есть список для хранения выбранных элементов. и список для отображения ListBoxFor.

Списки настроены следующим образом: -

@Html.ListBoxFor(i => Model.List1, Model.List1Items)
@Html.ListBoxFor(i => Model.List2, Model.List2Items)

Я заметил, что при отправке формы List1Items и List2Items не передаются вконтроллер. Это не имеет большого значения, так как я могу разобрать их в методе и передать обратно.

Мне нужно знать, как обновить 2 списка, используя jquery, когда модель передается обратно в функцию Ajax,ниже: -

$.ajax
({
    url: '@Url.Action("MoveItems", "MyController")',
    method: 'POST',
    cache: false,
    data: $("#MyForm").serialize(),
    success: function (retValue) {
        if (retValue.Result === "Success") {

            // What do I need here ?
            // Model is passed back as 'retValue.Data'

            alert(retValue.SuccessMessage);
        }
        else if (retValue.Result === "Error") {
             alert(retValue.ErrorMessage);
        }
    },
    failure: function () {
        alert('Unknown Server Error');
    }
});

Надеясь, что кто-то может указать мне правильное направление.

1 Ответ

1 голос
/ 21 октября 2019

попробуйте ниже единицы.

<script>
  var lst1 = $("[id*=List1]");
  lst1.empty();
  $.each(retValue.Data, function () 
  {
     lst1.append($("<option></option>").val(this['Value']).html(this['Text']));
  });

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...