首页 > 解决方案 > Ajax Post 调用响应为空

问题描述

 var generateOrder = {
      "orderitems": [
        {
          "id": 7,
          "name": "Raddish",
          "rate": 30,
          "weight": "3",
          "amountperweight": 90
        },
        {
          "id": 8,
          "name": "Peas",
          "rate": 35,
          "weight": "4",
          "amountperweight": 140
        }
      ],
      "totalamount": "230",
      "discount": "10",
      "netamount": "220"
    }

为什么 ajax post call 会以空值访问控制器。

var generateOrder = {
                    orderitems: newRecords,
                    totalamount: $("#totalamount").val(),
                    discount: $("#TextBoxdiscount").val(),
                    netamount: $("#TextBoxnetamount").val()
                }

                   $.ajax({
                    method: "POST",
                    url: "/Orders/GenerateOrder",
                    data: JSON.stringify(generateOrder),
                    contentType: "application/json",
                    success: function (response) {
                        console.log("response", response);
                    },
                    error: function (error) {
                    }
                });


         public class OrderCart
                {
                    public int id { get; set; }
                    public string name { get; set; }
                    public int rate { get; set; }
                    public string weight { get; set; }
                    public int amountperweight { get; set; }
                }


        [HttpPost]
        [Route("GenerateOrder")]
        [ActionName("GenerateOrder")]
        public List<OrderCart> GenerateOrder(List<OrderCart> generateOrder)
        {
          return generateOrder;
        }

控制器空响应

标签: jqueryajaxapiwebformscontroller

解决方案


在我看来,您正在发布一个同时具有标题和行项目的对象,但您的 Post 方法只需要一个行项目列表。您发送的 json 对象的结构与 POST 的预期不匹配可能是您的问题的一部分。


推荐阅读