如何将postjson数组列表转成web服务的方法?

how to post json array list to web service method?

我在 jquery 客户端和 c# asp.net 服务器端写了两个函数,我尝试 post json 将对象列表到 Web 方法,但我看到错误..

jquery代码:

function UpdateCart(tableid) {

var page = "Account/Cart.aspx";
var method = "Update_Cart";
var url = "http://" + host + "/" + page + "/" + method;

$(".popup").show();

var cartlist = new Array();
for (var i = 68; i < 71; i++) {
    var cart = new Object();
    cart.ID = i;
    cart.Quantity = 6;
    cartlist.push(cart);
}
var jsonArray = JSON.parse(JSON.stringify(cartlist))

$.ajax({
    type: "POST",
    url: url,
    data: jsonArray,
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    async: "true",
    success: function (response) {
        // success message or do
        $(".errMsg ul").remove();

        var myObject = eval('(' + response.d + ')');

        if (myObject == 1) {

            window.location.href = "http://" + host + "/Account/cart";

        } else {

            $(".errMsg").text("نام کاربری یا رمز اشتباه است");
            $(".errMsg").removeClass("alert");
            $(".errMsg").addClass("alert alert-danger");

        }


    },
    error: function (response) {
        alert(response.status + ' ' + response.statusText);
    }
});

}

c# 网络方法:

[WebMethod]
public static string Update_Cart(string[] Carts)
{
    if (Carts != null)
    {
        foreach (var item in Carts)
        {
            com_Shop_Carts cart = new com_Shop_Carts()
            {
                Quantity = item.Quantity,
                AddDate = DateTime.Now

            };
            com.shop.ProductManager.Update_Cart(item.ID, cart).ToString();
        }
    }

    return "1";
}

在 运行 之后我看到错误 500,我无法解决它请给我解决方案。

除此之外:var jsonArray = JSON.parse(JSON.stringify(cartlist))

试试这个:var json={"Carts":cartlist}; 然后 var jsonArray=JSON.stringify(json);

并从 ajax 调用中删除 datatype:json

希望这对您有所帮助。