【问题标题】:Conversion of object to multiple dimensional array对象到多维数组的转换
【发布时间】:2015-04-28 10:47:56
【问题描述】:

我在 web 方法中将多维数组作为对象类型传递。我想在方法中将此对象类型转换为多个数组。

进行转换的方法:

[WebMethod]
public static string Save(object arr)
{
  Dictionary<string, object> value = (Dictionary<string, object>)arr;
  return ""; 
}

客户端代码:

//ajax method
var arr=new Array();

 var table = document.getElementById('table');
    for (var r = 0, n = table.rows.length; r < n; r++) {
        arr[r] = new Array(10);
        for (var c = 0, m = table.rows[r].cells.length; c < m; c++) {
            arr[r][c]=table.rows[r].cells[c].innerHTML;
        }
    }
    console.log(arr);
  $.ajax({
    type: "POST",
    dataType: "json",
    contentType: "application/json",
    url: "salary.aspx/Save",
    data: JSON.stringify({ arr: arr }),
    success: function (response) {
        alert(response.d);            
    }
});

错误信息是:

无法将“System.Object[]”类型的对象转换为类型 'System.Collections.Generic.Dictionary`2[System.Object,System.Object]'。

【问题讨论】:

  • 你不能直接投射它。尝试循环和迭代单个项目。

标签: c# asp.net arrays asp.net-ajax webmethod


【解决方案1】:

首先你需要以不同的方式创建你的内部数组:

//ajax method
var arr=new Array();

 var table = document.getElementById('table');
    for (var r = 0, n = table.rows.length; r < n; r++) {
        arr[r] = {};
        for (var c = 0, m = table.rows[r].cells.length; c < m; c++) {
            arr[r][c]=table.rows[r].cells[c].innerHTML;
        }
    }
    console.log(arr);
  $.ajax({
    type: "POST",
    dataType: "json",
    contentType: "application/json",
    url: "salary.aspx/Save",
    data: JSON.stringify({ arr: arr }),
    success: function (response) {
        alert(response.d);            
    }
});

那么你应该可以做这样的事情:

[WebMethod]
public static string Save(object arr)
{
    object[] table = (object[])arr;

    // now the the object contains all your row values as an object.

    return ""; 
}

【讨论】:

  • 此代码未经测试,但 stringify 应该将一维数组放下,每一行表示为一个对象。
猜你喜欢
  • 1970-01-01
  • 2021-12-28
  • 2016-11-28
  • 2012-11-14
  • 2019-06-15
  • 2017-05-05
  • 2017-09-27
  • 2021-04-23
相关资源
最近更新 更多