Передача массива в код от jquery ajax

Я должен передать двумерный массив методу страницы, написанному в коде веб-страницы в asp.net. У меня есть переменная objList как двумерный массив. Я использовал следующий код для достижения этого безуспешно, и метод страницы не вызывается.

JAVASCRIPT

function BindTable(objList) {

    $.ajax(
    {
           url: "CompCommonQues.aspx/SaveData",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           type: "POST",
           data: { data: objList },
           success: function (data) {
           //Success code here
    },
    error: function () { }
    });
  }

Код за файлом .CS

 [WebMethod]
public static string SaveData(string[,] data)
{
    string[,] mystring = data;
    return "saved";
}

Существует метод типа JSON.stringify (objList) для передачи массива json в код, но он не может реализовать это. Простой вызов без массива работает для меня, как

data: "{ 'data':'this is string' }",

и в коде позади

[WebMethod]
public static string SaveData(string data)
{
    string mystring = data;
    return "saved";
}

При передаче data возникла проблема. Можете ли вы помочь мне, как передать его для массивов?

7 голосов | спросил Rajaram Shelar 29 MaramFri, 29 Mar 2013 11:49:08 +04002013-03-29T11:49:08+04:0011 2013, 11:49:08

1 ответ


0

Попробуйте правильную запись JSON в JavaScript

var objList = new Array();
objList.push(new Array("a","b"));
objList.push(new Array("a", "b"));
objList.push(new Array("a", "b"));

   $.ajax({
       type: "POST",
       url: "copyproduct.aspx/SaveDate",
       data: "{'data':'" + JSON.stringify(objList) + "'}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (msg) {
            alert(msg.d);
       }
   });

В коде позади вы можете десериализовать с помощью JavaScriptSerializer (System.Web.Script.Serialization)

[WebMethod()]
public static string SaveDate(string data)
{
    JavaScriptSerializer json = new JavaScriptSerializer();
    List<string[]> mystring = json.Deserialize<List<string[]>>(data);
    return "saved";
}

Мне пришлось десериализовать в общий список массива строк, потому что вы не можете десериализовать строку (проверьте: http://forums.asp.net/t/1713640.aspx/1 )

ответил CyclingFreak 29 MarpmFri, 29 Mar 2013 12:01:11 +04002013-03-29T12:01:11+04:0012 2013, 12:01:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132