我需要向WebApi发送一个字符串数组。我尝试了以下代码,但没有得到预期的输出。
在Javascript中:
$.ajax({
url:serviceUrl+'/sample',
type:'POST',
data:['a','b','c'],
contentType:'application/json',
dataType:'JSON'
}).done(function(data){
console.log(data);
}).fail(function(data){
console.log(data);
});
在控制器中:
[Route("sample")]
[HttpPost]
[ResponseType(typeof(string))]
public IHttpActionResult GetSample(List<string> dataFromUI)
{
return Ok("Success");
}
在WebAPI中我得到的dataFromUI没有元素。 我甚至尝试过JSON.stringify来发送数据,但这次我将dataFromUI作为null。
如果我得到答案,我会很高兴。
感谢。
答案 0 :(得分:0)
您设置路线&#39;示例&#39;为了您的行动,尝试使用示例操作调用
$.ajax({
url:serviceUrl+'/sample' ( or your action route),
type:'POST',
data:['a','b','c'],
contentType:'application/json',
dataType:'JSON'
}).done(function(data){
console.log(data);
}).fail(function(data){
console.log(data);
});
答案 1 :(得分:0)
您需要将数组转换为包含您要发送的数组的对象,作为与操作参数名称匹配的属性,如下所示:
JSON.stringify({ dataFromUI: ['a','b','c'] })
完整代码如下:
$.ajax({
url:serviceUrl+'/sample',
type:'POST',
data: JSON.stringify({ dataFromUI: ['a','b','c'] }),
contentType:'application/json',
dataType:'JSON'
}).done(function(data){
console.log(data);
}).fail(function(data){
console.log(data);
});