【发布时间】:2013-06-05 23:24:50
【问题描述】:
我有一个类似结构的函数:
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
但是,当我对该方法执行 Get 请求时:
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
调试时出现错误,指出listOfIds 为空。在我们的控制器中,我们有许多可以正常工作的公共 HttpGet 方法,并且当将参数更改为单个 int 时,它可以正常工作。我也尝试将参数类型更改为int[] 和IEnumerable<int>,但没有任何变化。
但是,当将调用更改为 HttpPost 并将列表作为 x-www-form-urlencoded 值传递时,该方法有效。
是否可以将列表传递给 Get 方法,还是必须使用 Post?因为它实际上不是一个 post 方法(因为它返回值的 JSON 模型并且没有任何内容保存到服务器)。
【问题讨论】:
-
看看this answer。发送位看起来正确,读取位需要一些调整。还有another one,一切看起来都很简单。
-
我已经尝试过您提供的第二个链接,但没有成功,但第一个链接将我引向一个结合了该 URL 和@CB 答案的方法,我在下面添加了该链接.谢谢
标签: c# web-services rest get http-get