如何将json数组列表发布到Web服务方法?

时间:2015-02-02 11:16:53

标签: c# jquery asp.net ajax webforms

我在jquery客户端和c#asp.net服务器端编写了两个函数,我尝试将json list对象发布到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 #web方法:

[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,我无法解决它,请给我解决方案解决它。

1 个答案:

答案 0 :(得分:1)

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

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

并从ajax调用中删除datatype:json

希望这会有所帮助。