javascript - Ajax post 发送 JSON 到方法结果为 null

标签 javascript c# jquery json model-view-controller

我不明白问题出在哪里。
我有一个 AJAX 调用,它向 Controller 传递一个对象,其中包含一些要下载的文件路径。 这是 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---
    }

我不明白为什么我的 postedData 是一个 Urls 属性设置为 null 的对象。 如果我将 postedData 声明为对象,我会得到我的 JSON 文本。

我错过了什么?我是 Web 开发的新手,我会开始用我的头毁掉 table 。

最佳答案

您不应该将您在 jquery 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");  
   }
}); 

编辑:我还注意到您类(class)中的 Urls 属性未标记为公共(public)。确保将其标记为公共(public),以便模型绑定(bind)器可以成功填充该属性。

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

关于javascript - Ajax post 发送 JSON 到方法结果为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519481/

相关文章:

javascript - gulp-inject 不适用于事件流

javascript - 如何在 Angular js中使用日期过滤数据?

javascript - 如何保留下一页的url参数

c# - 多个 POST 参数,一些包含 XML

jquery - 浏览器从哪里获取这些 HTML 表单字段?

javascript - 多次打开多个文件输入而不会丢失之前选择的文件

javascript - 调用函数时返回 jquery.deferred 对象的响应

c# - 在异步事件处理程序中返回字符串

jquery - 如何根据数字前面是 "+"还是 "-"来设置数字的字体颜色?

c# - 计算类型的对象而不计算子对象,可能吗?