Ajax отправляет JSON методу, получающему null - PullRequest
0 голосов
/ 04 февраля 2019

Я не могу понять, в чем проблема.
У меня есть вызов AJAX, который передает контроллеру объект с некоторыми путями к файлам для загрузки.Это вызов AJAX:

var listD = [];  
listD.push("Some Text");  
listD.push("Some other Text");  
var oList = {};  
oList.Urls=listD;  
                    $.ajax({  
                    method: 'POST',  
                    url: '/api/file/DownloadM/',  
                    data: JSON.stringify(oList),  
                    contentType: "application/json; charset=utf-8",  
                    success: function (response) {  
                        alert("OOOOOOK");  
                    },  
                    error: function (response) {  
                        alert("NOOOOOOO");  
                }  }); 

В моем приложении есть модель DownloadUrls:

public class DownloadUrl
    {
        string[] Urls { get; set; }
    }

И это мой метод:

    [Route("api/file/downloadM/")]//{username}")]
    [HttpPost]
    public HttpResponseMessage DownloadM(DownloadUrl postedData) {
              --do some stuff---
    }

IЯ не понимаю, почему мой postsData - это объект со свойством Urls, установленным в null.Если я объявляю опубликованные данные как объект, я получаю текст JSON.

Что мне не хватает?Я довольно новичок в веб-разработке, и я начну разрушать стол своей головой.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы не должны переводить объект, который вы передаете, в поле данных в вызове jjery Ajax.

Попробуйте пропустить JSON.stringify ():

$.ajax({  
   method: 'POST',  
   url: '/api/file/DownloadM/',  
   data: oList,  
   contentType: "application/json; charset=utf-8",  
   success: function (response) {  
        alert("OOOOOOK");  
   },  
   error: function (response) {  
        alert("NOOOOOOO");  
   }
}); 

Редактировать: Я также заметил, что свойство Urls в вашем классе не помечено как общедоступное.Убедитесь, что он помечен как общедоступный, чтобы связыватель модели мог успешно заполнить свойство.

public class DownloadUrl
{
      public string[] Urls { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...