ajax调用对象列表

时间:2013-10-13 19:41:47

标签: c# jquery .net ajax

我有以下脚本:

obj = [];
            obj = [{ AllocationStatus: false,
                BRId: 2,
                BRName: "rifat",
                SupervisorId: 19,
                SupervisorName: "Ashraful"
            }];
            console.log(obj);
            var data2send = JSON.stringify(obj);
            $.ajax({
                type: "POST",
                url: "../WebService1.asmx/allocatebr",
                data: "{'brlist':'" + data2send + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert(msg.d);
                },
                error: function () {
                    alert('error f');
                }
            });

在网络服务中,我有以下代码:

[WebMethod]
    public string allocatebr(List<Allocation> brlist)
    {
        //foreach(Allocation br in brlist){

        //}

        return "success";

    }

public class Allocation
    {
        public int SupervisorId { get; set; }
        public string SupervisorName { get; set; }
        public int BRId { get; set; }
        public string BRName { get; set; }
        public bool AllocationStatus { get; set; }
    }

但我收到错误:无法加载资源:服务器响应状态为500(内部服务器错误)。我的代码有什么问题?我想将对象列表传递给method.how来做什么?任何人帮助我非常感谢。 n.b.i得到了obj数组

`$('.chkgrip').each(function () {
                    if ($(this).is(':checked')) {
                        var x = $(this).closest('tr').data('row');
                        obj.push(x);
                    }
            });`

2 个答案:

答案 0 :(得分:0)

我认为问题是[WebMethod]属性将生成基于SOAP(XML)的Web服务。无法使用URL调用,就像您尝试它的方式一样。要做到这一点,你需要休息服务。

我建议Asp.Net Web ApiWCF

答案 1 :(得分:0)

以下内容适用于我:

using Newtonsoft.Json;

 [WebMethod]
    public static string allocatebr(string brlist)
    {

        List<Allocationbr> brs = JsonConvert.DeserializeObject<List<Allocationbr>>(brlist);
        foreach (Allocationbr b in brs)
        {
            x......
        }
        return x.ToString();
    }