从jquery ajax将数组传递给webmethod

时间:2017-05-03 10:34:24

标签: javascript asp.net

这是我的剧本:

<script  type="text/javascript">
    var arr = [1,2,3];
    var jdata = {name:arr};
    $(document).ready(function () {
        $.ajax({
            method: 'POST',
            url: 'WebForm1.aspx/call',
            contentType: "application/json",
            data: JSON.stringify(jdata),
            dataType: "json",
            success: function (dt) { alert(JSON.parse(dt.d).name[0]);debugger },
            error: function () { alert("failure"); debugger } 

        });
    });
</script>

这是asp.net web方法:

public static String call(int[] name)
{
    return "{\"name\":[1,2]}";
}

我收到内部服务器错误。任何人都可以帮我找到造成这种情况的原因。

1 个答案:

答案 0 :(得分:0)

您收到错误是因为您传递的是带有名称的JSON对象作为属性,而您的网络方法接受 int []

你可以通过 arr 来让事情发挥作用

<script  type="text/javascript">
var arr = [1,2,3];
$(document).ready(function () {
    $.ajax({
        method: 'POST',
        url: 'WebForm1.aspx/call',
        contentType: "application/json",
        data: JSON.stringify(arr),
        dataType: "json",
        success: function (dt) { alert(JSON.parse(dt.d).name[0]);debugger },
        error: function () { alert("failure"); debugger } 

    });
});

希望它有所帮助!!