【发布时间】: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