【问题标题】:how to pass and get the multidimensional array in c# webmethodc#webmethod如何传递和获取多维数组
【发布时间】:2014-09-15 16:18:11
【问题描述】:

我想在 c# webmethod 中发送和处理多维数组,因为我已经完成了一些工作。我不想在循环中运行 ajax 函数。

ASPX 页面代码

 var trip_id = $("#example1").val();
    var user_id = $("#example2").val();
    var facebookData = [];
    facebookData[0] = trip_id;
    facebookData[1] = user_id;
    var fnds_list_array=[];
    fnds_list_array=[["0678678678","XYZ","something.jpg"],["432524352","ABC","somethingABC.jpg"]]


      var jsonData = JSON.stringify({ fb_Data: facebookData, fb_user_data: fnds_list_array });
                        $.ajax({
                            type: "POST",
                            url: "Ajax_function/myfunction.asmx/insert_custom",
                            data: jsonData,
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            success: OnSuccess_insert_custom,
                            error: OnErrorCall
                        });


        function OnErrorCall()
     { console.log("OHHH there is a mistake");}
        function OnSuccess_insert_custom(response) 
     { console.log("SUCESS");}

网络方法代码

[WebMethod]
    public string[] insert_custom(List<string> fb_Data,List<string> fb_user_data)
    {
        string temp = "";
        string tripid = fb_Data[0];
        string owner_id = fb_Data[1];
        string fb_all_data;
        string fb_id_user;
        string fb_name;
        string fb_img_src;

        for (int i = 0; i < fb_user_data.Count; i++)
       {
            fb_all_data=fb_user_data[i];
            string[] spltVal = fb_all_data.Split(',');
            for (int j = 0; j < spltVal.Length; j++)
            {
                fb_id_user=spltVal[0];
                fb_name = spltVal[1];
                fb_img_src = spltVal[2];
                temp = inFn.insert_custom(tripid, owner_id, fb_id_user, fb_name, fb_img_src);
        }
    }
       // }
        string[] arr1 = new string[] { temp };
        return arr1;


    }

但我收到以下错误

"Type 'System.String' is not supported for deserialization of an array."

注意:fnds_list_array 不是静态的..它可以增加或减少

【问题讨论】:

  • 您的第二个参数 fnds_list_array 在其中包含数组&另一方面,您的方法需要带有字符串的列表。对于第二个参数,我建议使用带有类类型的列表,其中类应该定义了您需要从 ajax 调用传递的这 3 个属性(例如:Id、Name 和 ImageName)。
  • 你能举个例子吗?

标签: c# jquery asp.net arrays multidimensional-array


【解决方案1】:

请参见下面的示例,我无法对其进行测试。但它可以向您展示解决问题的一些方法。

[WebMethod]
public static string[] insert_custom(List<MyTest> fnds_list_array)
{

}


public class MyTest
{
 publc int Id
 { get; set;}

 publc string Name
 { get; set;}

 publc string ImageName
 { get; set;}
}

【讨论】:

    【解决方案2】:

    你可以这样做

    MyWebMethod(List&lt;List&lt;string&gt;&gt; fnds_list_array)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2015-03-01
      • 2011-10-19
      • 2010-09-30
      相关资源
      最近更新 更多