/ / Não é possível passar a matriz multidimensional para o lado do servidor com PageMethods -Jquery / C # - c #, jquery, matrizes, conversão de tipo, pagemethods

Não é possível transmitir a matriz multidimensional para o lado do servidor com PageMethods -Jquery / C # - c #, jquery, matrizes, conversão de tipos, pagemethods

Meu problema é exatamente isso: Como passar uma matriz multidimensional do Javascript para o servidor usando PageMethods no ASP.Net

Estou tentando fazer a mesma coisa, mas a solução não funciona para mim e estou confuso. Ele diz JSON.stringify funciona, mas torna minha matriz de objetos um todo string. Eu não posso usar string[,] ou List<string> para o tipo de parâmetro. Se eu não usar JSON.stringify eu posso passar dados com List<object> tipo. Mas não consegui obter valores em c #. Então, preciso de ajuda. Basicamente; Eu preciso passar minha matriz multidimensional para c # e devo obter valores com loop. Então, preciso de alguns conselhos. Aqui está o meu código:

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);

e aqui está o meu método da Web c #:

[WebMethod]
public static void InsertAuditParams(string[,] testarray)
{
for(int i = 0; i < testarray.Length; i++)
{
string value1 = testarray[i, 0].ToString();
}
}

e este é o erro que recebo no console do firebug:

... Não é possível converter o objeto do tipo "System.String" para o tipo "System.String [,]"

Desde já, obrigado.

Respostas:

0 para resposta № 1

Eu o resolvi. Era sobre o tipo de coleção passado. Era como se dictionary digite c # e é por isso que não consegui obter valores. Então, eu criei uma função js para manipular os dados como eu quero. Aqui está a solução para os novatos;

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);

e é assim que se obtém valores em 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();
}
}