Опубликовать список объектов и int в Core MVC Controller с помощью jQuery Ajax - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь передать массив объектов и int в Core MVC Controller с постом jQuery Ajax.

Я видел много-много ответов на эту проблему, но не нашел ни одного.это работает для меня ... Кажется, что использование Core MVC не работает для этого, как классический MVC.

Класс объекта:

public class Field : Nameable //herit of the ID and Name properties
{
    public string Value { get; set; }

    public Field () { }
}

Функция контроллера MVC:

[HttpPost]
public JsonResult SaveFields(List<Field> fields, int id)
{
   return Json(new { success = true, responseText = "OK" });
}

Функция jQuery:

$('#btnSaveFields').click(function () {
    var $rows = $('#table').find('tr:not(:hidden)');
    var data = [];
    var id = 1;

    // Turn all existing rows into a loopable array
    $rows.each(function () {
        var $td = $(this).find('td');
        var obj = new Object();
        obj.ID = $td.eq(0).children().attr('value');
        obj.Name = $td.eq(0).text().trim();
        obj.Value= $td.eq(1).text();
        data.push(obj);
    });
    data.shift(); // don't take the headers row
    console.log(data[0]); //seems ok
    var fields = JSON.stringify({ 'fields': data });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        url: '@Url.Action("SaveFields")',
        //traditional: true, //don't work or wrong use ?
        type: 'POST',
        data: {
            'fields': fields,
            'id' : id
        },
        success: function (response) {
            console.log('ok')
        },
        error: {
            console.log('nok')
        }

    });
});

Вызов функции контроллера MVC работает, но параметры равны нулю.У вас есть представление о том, что я делаю не так?

1 Ответ

0 голосов
/ 04 июня 2018

Я нашел решение для моей проблемы!

Это была просто ошибка в моей опечатке.'C' для contentType должно быть в верхнем регистре.

Ответ:

$.ajax({
        url: '@Url.Action("SaveFields")',
        ContentType: 'application/json',
        dataType: 'json',
        type: 'POST',
        data: { fields: data, id: id },
        success: function (response) {
            console.log('OK')
        },
        error: function (){
            console.log('NOK');
        }

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