【问题标题】:Ajax Post call response is nullAjax Post 调用响应为空
【发布时间】:2020-05-11 17:36:14
【问题描述】:
 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;
        }

Controller null response

【问题讨论】:

    标签: jquery ajax api webforms controller


    【解决方案1】:

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

    【讨论】:

    • 那么我应该如何传递对象?
    • 尝试只传递“orderitems”数组,不传递总和净字段,看看是否有效。如果是这样,这将表明对象的不匹配可能是正在发生的事情。如果是这种情况,您需要创建一个包含 OrderItems 数组的 Order 类,以及总和净等字段,然后将其作为您的 POST 参数,即 public Order GenerateOrder(Order generateOrder) 基本上,您希望对象在结构上匹配,以便 .NET 可以将您的 json 与 .NET 对象匹配。
    • 太棒了!如果您不介意,请将我的答案标记为答案,因此它将显示为已解决:)
    猜你喜欢
    • 2013-05-03
    • 2016-09-19
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多