【发布时间】:2016-03-25 02:43:58
【问题描述】:
所以我正在尝试将数据从 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);
}
url 始终为 null,即使在 ajax 中传递的值不是(使用调试器验证)
我们将不胜感激,因为我在经过一个多小时后似乎无法弄清楚。
编辑:我已经越来越多地尝试使用谷歌搜索,似乎它仍然返回 null (当 stringified 时)并且没有时什么都没有。 此外,自从我将控制器更改为 ApiController 以来,这种情况一直在发生,如果有帮助,它在更改为 Web Api 控制器之前一直在工作。
编辑 2:尝试了 cmets 中的所有内容,但仍然没有任何效果:/
【问题讨论】:
-
我认为 value 是一个字符串数组。尝试在不进行字符串化的情况下仅发送值。也许也将控制器参数更改为 string[]
-
@MartinMazzaDawson 仍然无法正常工作,我认为这与 value 不是列表有关,因为在我切换到 Web api 控制器之前它曾经工作过......
-
您正在从 javascript 发送一个对象,但控制器需要一个数组。您是否尝试过仅数据:值?
-
这里没有考虑模型是否有特定原因 - 即 Class A { public string[] Urls {get;set;}} 然后在客户端设置它,然后再发送它做一个Json.stringify?尽管如此,如果您只需要传递字符串列表,那么您不能简单地使用分隔符将它们连接起来并将它们作为一个巨大的字符串发送并在您的服务器端拆分它。
-
@peinearydevelopment value 是一个数组,我无法访问我的代码,因为我的 PC 已关闭,但 value 是 textarea 中所有行的数组,我也尝试了 data: value