为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Ajax 调用控制器方法

使用 Ajax 调用控制器方法

C#
慕田峪4524236 2021-11-28 16:33:45
我正在尝试使用 ajax 调用控制器的方法,但不知何故我无法调用该方法。我正在发送一个数组类型对象作为要发布的参数,但没有在控制器上获取参数的值,即使我发送了参数,JSON.stringify但问题仍然存在。这是我的ajax方法。$('.btn-generate-bill').on('click', function(event) {  event.preventDefault();  const billArray = [];  $('.posTable').find('tbody tr').each(function(index, elem) {    billArray.push({      ProductID: $(elem).find('.productID').text().trim(),      Quantity: $(elem).find('.qtyControl').val()    });  })  console.log(JSON.stringify(billArray));  $.ajax({    url: "/Cashier/UpdateProductQuantity",    contentType: "application/json; charset=utf-8",    dataType: "json",    data: {      pDetail: JSON.stringify(billArray)    },    responseType: "json",    cache: false,    traditional: true,    async: false,    processData: true,    success: function(data) {      alert('success');    }  });})这是控制器的方法。public JsonResult UpdateProductQuantity(List<Test> pDetail){    return Json("", JsonRequestBehavior.AllowGet);}public class Test{    public int ProductID { get; set; }    public int Quantity { get; set; }}
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

我认为有两点需要解决:

  1. 没有类型的ajax将成为GET请求。放POST

  2. 尝试使用数据: JSON.stringify({ 'pDetail': billArray})

所以,它变成:

$.ajax({

    url: "/Cashier/UpdateProductQuantity",

    type : 'POST',

    contentType: "application/json; charset=utf-8",

    dataType: "json",

    data: JSON.stringify({ 'pDetail': billArray}),

    responseType: "json",

    success: function (data) {

        alert('success');

    }

});


查看完整回答
反对 回复 2021-11-28
?
千万里不及你

TA贡献1784条经验 获得超9个赞

我会用你的控制器尝试 FromBody:


[HttpPost]

public JsonResult UpdateProductQuantity([FromBody]List<Test> pDetail)

{

    return Json("", JsonRequestBehavior.AllowGet);

}

你说你需要发布你的 billArray 所以你的 ajax 请求应该是这样的发布类型:


$.ajax({

url: "/Cashier/UpdateProductQuantity",

type : 'POST', //this is the difference

contentType: "application/json; charset=utf-8",

dataType: "json",

data: JSON.stringify({ 'pDetail': billArray}),

responseType: "json",

success: function (data) {

    alert('success');

}

});


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 377 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号