Сохранение модели и манипулирование в представлении для 2 списков моделей - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть модель MVC, которая будет иметь 2 списка, а также некоторые другие свойства. Список 1 - это флажок списка. Список 2 - это список времени начала и окончания. Я настроил и работаю, но теперь мне нужно добавить больше данных в список 2, чего я добился с помощью Jquery, но добавил в javascript. Это не добавляет его к данным модели. Затем мне нужно опубликовать оба этих списка в действии контроллера, чтобы я мог зациклить их и поместить их в базу данных (не моя проблема). Мне нужно заполнить модели для отправки. Я не уверен, как получить это и рисую бланк при заполнении второй модели, используя jquery / js.

Я мог бы сделать это в отдельных записях довольно легко, но я хочу иметь возможность отправлять более одной заявки за раз.

Я попытался создать частичное представление только с данными списка моделей, которые представлены, но затем у меня возникла та же проблема с заполнением модели. Я пытался сделать это только через MVC, но я не экономлю на ходу, я хочу, чтобы клиент мог внести несколько изменений, а затем сохранить. Так что это должно быть сохранено в DOM, и я использую таблицу для этого. Я хочу, чтобы эта таблица была данными модели.

модель

public List<PersonelList _ViewModel> PersonelList { get; set; }
public List<OutTimesForList_ViewModel> OutTimesList { get; set; }

public DateTime? StartDateTime { get; set; }
public DateTime? EndDateTime { get; set; }

Они обнуляются (datetime) из-за того, что я использую средство выбора даты и времени JS, которое показывает время в текстовом поле, если я не отправляю его обнуляемым.

В представлении они вводят начальное и конечное время, нажимая добавить, затем я хочу, чтобы он был добавлен в OutTimesList, чтобы публикация давала мне данные, заполненные в списке моделей. PersonelList - это список CB для времени, которое будет добавлено, поэтому, если отмечено, добавьте это время.

Когда сообщение будет готово, оба списка будут отправлены контроллеру, чтобы я проследовал и отправил данные.

1 Ответ

0 голосов
/ 13 апреля 2019

Попробуйте использовать jQuery ajax post с formData .С коллекцией объекта это должно выглядеть так:

$( "#YourFormId" ).submit(function(event) {
var formData = new FormData($("#YourFormId"))

//todo need to get properties of PersonelList and OutTimesList via jquery

var indexPersonelList = 0;
for(var pair of PersonelList){
    var item = pair[key];
    formData.append("PersonelList[" + indexPersonelList + "].Id", item.Id);
    indexPersonelList++;
}

var indexOutTimesList = 0;
for(var pair of OutTimesList){
    var item = pair[key];
    formData.append("OutTimesList[" + indexOutTimesList + "].Id", item.Id);
    indexOutTimesList++;
}

$.ajax({
       type: 'POST',
       url: '/MyController/MyAction',
       data: formData,

       contentType: false,
       processData: false,
       success: function (data) {
            //some success stuff
       },
       error: function (error) {
            //some error stuff
       }
      }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...