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 关注
- 163 浏览
添加回答
举报