【发布时间】:2015-12-09 16:12:56
【问题描述】:
这是我的 C# WebAPI2 控制器,它被击中了:
[HttpGet, Route("bycaseidlist/{idArray}")]
public async Task<IHttpActionResult> GetByCaseIdList([FromUri] List<int> idArray)
这是电话:
var idArray = [4,4,2,4];
var url = baseUrl + 'api/cases/bycaseidlist/' + idArray ;
$http.get(url)
问题是 API 没有得到数组,它得到了……这个:
换句话说,一个具有一个值的数组:0。为什么会发生这种情况?我如何解决它?它似乎与this answer 一致,但它不起作用。我应该在体内传递吗?我觉得我错过了一些明显的东西。
【问题讨论】:
-
你试过没有 [FromUri] 吗?
-
使用浏览器中的开发工具查看正在发送的实际 URL。我的猜测是你必须序列化数组。查看此答案中的发送请求,看看您的 url 是否与它相似:stackoverflow.com/questions/9981330/…
-
@AmmarHamidou:我没有,但我是在 url 中发送对象,所以这是必要的。另一种方法是来自 body,它是除了简单类型或类似的东西之外的任何东西的默认值。谢谢大家的回答。
-
问题似乎出在您的 javascript 中。即使使用 [FromUri] 属性,当我尝试使用上述语法时,url 的格式也无法正确序列化。您的查询字符串需要采用 ?numbers=1&numbers=2&numbers=3 或 ?numbers[]=1&numbers[]=2&numbers[]=3 格式
标签: javascript c# angularjs asp.net-web-api2