Отправка массива с использованием данных формы в C# WebAPI с использованием AJAX - PullRequest
0 голосов
/ 20 января 2020

Я хочу опубликовать массив с некоторыми файлами, используя FormData, в WebAPI, однако он показывает [Object% Object] в Webapi. Пожалуйста, помогите мне выйти из этого. Оценивается заранее. ниже приведен фрагмент кода:

        var arr = [];
        var table = $('#tblOptionType');
        var tr = table.find('tbody tr');
        tr.each(function (i, v) {
            if (i != 0) {
                var values = {
                    Options: $(v)[0].cells[0].firstElementChild.value,
                    IsCorrect: $(v)[0].cells[1].firstElementChild.checked,
                };
                arr.push(values);
            }
        });
        formData = new FormData();
        jQuery.each(jQuery('#QuestionImage')[0].files, function (i, file) {
                 formData.append('file-' + i, file);
        });                 
        formData.append("Options", arr);
        $.ajax({
            url: 'http://localhost:56892/api/Admin/Questions/AddQuestion',
            method: "POST",
            data: formData,
            contentType: false,
            processData: false,
            traditional: true,
            success: function (res) {}
            error:function(err){}
        });

Вот строка, которую я получаю через WebAPI: enter image description here

1 Ответ

0 голосов
/ 20 января 2020

Вам необходимо установить contentType, который является типом данных, которые вы отправляете, поэтому application/json; charset=utf-8 является обычным, как и application/x-www-form-urlencoded; charset=UTF-8, который является значением по умолчанию:

$.ajax({
        url: 'http://localhost:56892/api/Admin/Questions/AddQuestion',
        method: "POST",
        data: JSON.stringify(formData),
        contentType: "application/json; charset=utf-8",
        processData: false,
        traditional: true,
        success: function (res) {}
        error:function(err){}
    });
...