无法使用 PageMethods 将多维数组传递到服务器端 -Jquery/C#
Can't pass multidimensional array to server side with PageMethods -Jquery/C#
我的问题是这样的:How To Pass a MultiDimensional Array from Javascript to server using PageMethods in ASP.Net
我正在尝试做同样的事情,但解决方案对我不起作用,我很困惑。他说 JSON.stringify
有效,但它使我的对象数组成为一个完整的 string
。我不能使用 string[,]
或 List<string>
作为参数类型。如果我不使用 JSON.stringify
我可以传递 List<object>
类型的数据。但我无法在 C# 中获取值。所以我需要一些帮助。 基本上; 我需要将我的多维数组传递给 C#,并且我必须在循环中获取值。所以需要一些建议。这是我的代码:
Jquery:
var fixedQuestions = $(".questId").map(function () {
return { group:$(this).closest('li').attr('id') , id:$(this).text() };
}).get();
var test1 = JSON.stringify(fixedQuestions);
PageMethods.InsertAuditParams(test1);
这是我的 C# Web 方法:
[WebMethod]
public static void InsertAuditParams(string[,] testarray)
{
for(int i = 0; i < testarray.Length; i++)
{
string value1 = testarray[i, 0].ToString();
}
}
这是我在 firebug 控制台上遇到的错误:
...无法将类型 'System.String' 的对象转换为类型 'System.String[,]'
提前致谢。
我已经解决了。这是关于传递的集合类型。它看起来像 dictionary
在 c# 中键入,这就是我无法获取值的原因。所以我创建了一个 js 函数来根据需要操作数据。这是新手的解决方案;
function ConvertToArray(objectData)
{
var multiArray = [];
for (var key in objectData) { multiArray.push([objectData[key].num,
objectData[key].text]); }
return multiArray;
}
var passFixed = ConvertToArray(fixedQuestions);
PageMethods.InsertAuditParams(passFixed);
这是在 c# 中获取值的方法:
public static void InsertAuditParams(List<object> fixed_q)
{
foreach (object[] item in fixed_q)
{
string value1 = item[0].ToString();
string value2 = item[1].ToString();
}
}
我的问题是这样的:How To Pass a MultiDimensional Array from Javascript to server using PageMethods in ASP.Net
我正在尝试做同样的事情,但解决方案对我不起作用,我很困惑。他说 JSON.stringify
有效,但它使我的对象数组成为一个完整的 string
。我不能使用 string[,]
或 List<string>
作为参数类型。如果我不使用 JSON.stringify
我可以传递 List<object>
类型的数据。但我无法在 C# 中获取值。所以我需要一些帮助。 基本上; 我需要将我的多维数组传递给 C#,并且我必须在循环中获取值。所以需要一些建议。这是我的代码:
Jquery:
var fixedQuestions = $(".questId").map(function () {
return { group:$(this).closest('li').attr('id') , id:$(this).text() };
}).get();
var test1 = JSON.stringify(fixedQuestions);
PageMethods.InsertAuditParams(test1);
这是我的 C# Web 方法:
[WebMethod]
public static void InsertAuditParams(string[,] testarray)
{
for(int i = 0; i < testarray.Length; i++)
{
string value1 = testarray[i, 0].ToString();
}
}
这是我在 firebug 控制台上遇到的错误:
...无法将类型 'System.String' 的对象转换为类型 'System.String[,]'
提前致谢。
我已经解决了。这是关于传递的集合类型。它看起来像 dictionary
在 c# 中键入,这就是我无法获取值的原因。所以我创建了一个 js 函数来根据需要操作数据。这是新手的解决方案;
function ConvertToArray(objectData)
{
var multiArray = [];
for (var key in objectData) { multiArray.push([objectData[key].num,
objectData[key].text]); }
return multiArray;
}
var passFixed = ConvertToArray(fixedQuestions);
PageMethods.InsertAuditParams(passFixed);
这是在 c# 中获取值的方法:
public static void InsertAuditParams(List<object> fixed_q)
{
foreach (object[] item in fixed_q)
{
string value1 = item[0].ToString();
string value2 = item[1].ToString();
}
}