Получение массива AJAX jQuery в c # - PullRequest
1 голос
/ 28 июля 2011

У меня есть массив JSON, подобный этому:

  "{structChangeList : '[{"structChange":{"id":"Level1.Second","parentId":"Level1.First","date":"2011-01-01"}}]'"

или

"[{" structChangeList ": {" ID ":" Level1.Second " "ParentID": "Level1.First", "Дата": "2011-01-01"}}]"

и различные другие варианты, которые я пытаюсь подобрать с помощью веб-метода, например

    [WebMethod]
    public string receiveStructureUpdates3(List<StrutureData> structChangeList)
    {

        return "Hello World";
    }

где StructureData:

[DataContract]
public class StrutureData
{
    [DataMember]
    public string id { get; set; }
    [DataMember]
    public string parentId { get; set; }
    [DataMember]
    public string date { get; set; }
}

Работает нормально, когда я пытаюсь подобрать не массив, например:

"{" structChange ": {" ID ":" Level1.Second " "ParentID": "Level1.First", "Дата": "2011-01-01"}}"

с:

    [WebMethod]
    public string receiveStructureUpdates2(StrutureData structChange)
    {
    }

Но я не могу заставить работать массив. Есть идеи?

Ответы [ 2 ]

1 голос
/ 28 июля 2011

РЕДАКТИРОВАТЬ:

Чтобы использовать массив / список, измените:

"{"structChange":{"id":"Level1.Second","parentId":"Level1.First","date":"2011-01-01"}}"

на

{"structChange": [{"id":"Level1.Second","parentId":"Level1.First","date":"2011-01-01"}]}

Поскольку .Net ищет structChage, этохочет найти это первым.Поскольку structChange является List, значение для этого ключа должно быть массивом.

0 голосов
/ 28 июля 2011

Это правильный способ отправки данных для действия в контроллере

data: "{someField : [[\"Level1.Second\",\"Level1.First\",\"2011-01-01\"]] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...