如何使用ASP.Net中的PageMethods将多维数组从Javascript传递到服务器

时间:2013-03-08 10:04:20

标签: javascript jquery asp.net webmethod pagemethods

我的HTML页面中有一些<li>项目,如此

<li id="A1" class="ui-state-default">Item 2</li>
  <li id="A2" class="ui-state-default">Item 3</li>
  <li id="A3" class="ui-state-default">Item 4</li>
  <li id="A4" class="ui-state-default">Item 5</li>

我使用Javascript和Jquery这样调用它来获取<li>元素的Id和索引

function LiOrder() {
            var order = $('li').map(function (i) {
                return { id: this.id, index: i };
            }).get();

            PageMethods.GetServerResponse(order, OnSuccess, OnFail);
        }

        function OnSuccess(arg) {
            alert(arg);
        }

写在Aspx.cs页面中的WebMethod就是这个

[WebMethod]
    public static string GetServerResponse(string[,] LiOrder)
    {


        return LiOrder[0,0];
    }

但是当我尝试执行它时,我在Google Chrome(Javascript控制台)中收到了类似的错误

POST http://localhost:2453/ERP29.1.13/Production/LifeCycleRegistration.aspx/GetServerResponse 500 (Internal Server Error) ScriptResource.axd:6979

出现此错误的原因可能是什么。我可以像这样将字符串传递给WebMethod。但是当涉及到Array时,就像这样。请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

JSON.stringify解决了我的问题。我改变了我的代码

var LiArr=JSON.stringify(order);
            PageMethods.GetServerResponse(LiArr, OnSuccess, OnFail);