2 回答

TA貢獻1770條經驗 獲得超3個贊
要綁定到您的控制器方法,您需要發送一個包含名稱/值對的對象數組ProductId。要構建對象數組,請使用
$('#btnActivate').on('click', function () {
var allSelectedProductId = [];
$('.chkItems:checked').each(function() {
allSelectedProductId.push({ ProductId: $(this).val() });
});
var things = JSON.stringify({ UpdateProductStatus: allSelectedProductId });
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '/Products/UpdateProductStatus',
data: things,
success: function () {
....
});
});

TA貢獻1798條經驗 獲得超3個贊
您當前的代碼正在為 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);
}
});
您還可以刪除dataTypein ajax 調用。jQuery ajax 將從響應標頭中猜測正確的類型,在您的情況下,您將顯式返回 JSON。
- 2 回答
- 0 關注
- 179 瀏覽
添加回答
舉報