Javascript Ajax post将JSON发送到方法,结果为空

Javascript Ajax post将JSON发送到方法,结果为空,javascript,c#,jquery,json,model-view-controller,Javascript,C#,Jquery,Json,Model View Controller,我不明白问题出在哪里。 我有一个AJAX调用,它向控制器传递一个对象,其中包含一些要下载的文件路径。 这是AJAX调用: var listD = []; listD.push("Some Text"); listD.push("Some other Text"); var oList = {}; oList.Urls=listD; $.ajax({ method: 'POST',

我不明白问题出在哪里。
我有一个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");  
                }  }); 
我的应用程序中有一个名为DownloadURL的模型:

public class DownloadUrl
    {
        string[] Urls { get; set; }
    }
这是我的方法:

    [Route("api/file/downloadM/")]//{username}")]
    [HttpPost]
    public HttpResponseMessage DownloadM(DownloadUrl postedData) {
              --do some stuff---
    }
我不明白为什么我的postedData是一个URL属性设置为null的对象。 如果我将postedData声明为对象,我将获得JSON文本


我错过了什么?我是web开发的新手,我将开始用我的头来破坏桌面。

您不应该在jquery Ajax调用中对数据字段中传递的对象进行字符串化

尝试跳过JSON.stringify():

编辑:我还注意到类中的URL属性没有标记为public。确保将其标记为公共,以便模型绑定器可以成功填充该属性

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

谢谢你的回答,但仍然是空的。谢谢!我不得不使用JSON.stringify,但问题是类中缺少public。:)你能不能不给它传递一个字符串列表而不是一个有字符串列表的对象?
public class DownloadUrl
{
      public string[] Urls { get; set; }
}