Ваш текущий код отправляет полезную нагрузку, как показано ниже для вызова ajax.
{"UpdateProductStatus":["ProductId:0","ProductId:1"]}
Ваш аргумент метода действия представляет собой список UpdateProductStatus
объектов. Поэтому для правильной работы привязки модели с вашей текущей подписью параметра метода действия ваша полезная нагрузка должна быть такой, как показано ниже.
[{"ProductId":"1"},{"ProductId":"2"}]
Нет необходимости указывать имя параметра. Просто передайте массив элементов, каждый со свойством ProductId
и его значением.
var allSelectedProductIdWithKey = [];
$('.chkItems:checked').each(function () {
allSelectedProductIdWithKey.push({ ProductId: $(this).val() });
});
var things = JSON.stringify(allSelectedProductIdWithKey);
$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: '/Products/AppendClientFilter',
data: things,
success: function (res) {
console.log('Successs', res);
},
failure: function (response) {
console.log('Error', response);
}
});
Вы также можете удалить dataType
в вызове ajax. jQuery ajax будет угадывать правильный тип из заголовка ответа, и в вашем случае вы будете явно возвращать JSON.