【问题标题】:How To Pass a MultiDimensional Array from Javascript to server using PageMethods in ASP.Net如何使用 ASP.Net 中的 PageMethods 将多维数组从 Javascript 传递到服务器
【发布时间】:2013-03-08 10:04:19
【问题描述】:

我的 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 调用它来获取 &lt;li&gt; 元素的 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);
        }

WebMethod 写在 Aspx.cs 页面是这样的

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


        return LiOrder[0,0];
    }

但是当我尝试执行它时,我在谷歌浏览器(Javascript 控制台)中得到这样的错误

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

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

【问题讨论】:

  • 仅使用字符串。它不是多维数组。
  • 我们不能将数组传递给 PageMethods
  • 调试时它显示我是一个数组。
  • 无论您发送什么,它都将是 javascript 中的字符串或对象。您可以 json.stringfy,并将字符串发送到方法
  • 也尝试过使用字符串。没有任何变化

标签: javascript jquery asp.net webmethod pagemethods


【解决方案1】:

JSON.stringfy 解决了我的问题。我像这样更改了我的代码

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

【讨论】:

  • 嗨。我遇到了同样的问题。但是您的解决方案对我不起作用。我的 jquery 和 c# 方法和你的完全一样。但是 JSON.stringify 使我的数组成为一个字符串。我需要多维数据数组。你知道为什么会这样吗?
猜你喜欢
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多