ASP.NET将json POST数据传递给Web API导致null数据

时间:2016-03-25 02:43:59

标签: jquery asp.net json ajax

所以我正在尝试将数据从textarea发送到我的ApiController,它似乎根本不起作用。  这是我的ajax(其中value是一个字符串数组):

function doCallback(value)
{
$.ajax({
     url: 'http://localhost:83048/api/test/function',
     type: 'POST'
     contentType: "application/json"
     dataType: 'json'
     data:
     { urls : JSON.stringify(value) },
     success......});
 }

控制器:

[HttpPost]
public async Task<List<string>> function(List<string> urls)
{
    return await Program.blabla(urls);
}

即使在ajax中传递的值不是(使用调试器验证),url也始终为null

一点点的帮助将会受到赞赏,因为在经过一个多小时后,我似乎无法弄明白。

编辑:我已经尝试了越来越多的谷歌搜索似乎是stil返回null(当字符串化时),什么时候没有。 此外,这已经发生,因为我已经将控制器更改为ApiController,它在更改为Web Api控制器之前工作,如果它可以帮助。

编辑2:在评论中尝试了所有内容,但仍无效:/

2 个答案:

答案 0 :(得分:1)

将数据更改为数据:JSON.stringify(value)使其正常工作

$.ajax({
 url: 'http://localhost:83048/api/test/function',
 type: 'POST'
 contentType: "application/json"
 dataType: 'json'
 data: JSON.stringify(value),
 success......});
 }

所有的麻烦..坝啊ahah

答案 1 :(得分:0)

尝试将urls属性指定为数组。意思是代替传递

{ urls : JSON.stringify(value) }

通过

{ urls : [JSON.stringify(value)] }

注意方括号。