Ajax POST массив в JSON для API в C # - PullRequest
0 голосов
/ 03 мая 2019

Я хочу отправить массив в виде строки JSON в API, а затем обработать данные. Несмотря на то, что я создал класс и попытался сопоставить его, я получил его как null

Это мой AJAX-вызов (часть):

var ids = {
  rateplanIds: ['100', '200', '300']
};
$.ajax({
  url: g_appVirtualPath + "ApiFile.mvc/CheckMBB/",
  async: false,
  global: false,
  type: "POST",
  data: {
  ids: JSON.stringify(ids)
  }
})

Это мой API (часть):

        public class RateplanIds
        {
            [DataMember]
            public string[] rateplanIds { get; set; }


        }


        [AcceptVerbs(HttpVerbs.Post), Authorize]
        public JsonResult CheckMBB(RateplanIds ids) //ids = null
        {

        }

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Проблема в том, что у вас есть много оболочек вокруг ваших данных. Свойство data запроса AJAX просто должно быть data: JSON.stringify(ids)

Обратите внимание , что каждый {} является новым Object

0 голосов
/ 03 мая 2019

используйте это:

    [AcceptVerbs(HttpVerbs.Post), Authorize]
    public JsonResult CheckMBB([FromBody]RateplanIds ids) //ids = null
    {

    }

вместо:

    [AcceptVerbs(HttpVerbs.Post), Authorize]
    public JsonResult CheckMBB(RateplanIds ids) //ids = null
    {

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...