我有一个结构与此类似的函数:
[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[]
and IEnumerable<int>
也是,但没有变化。
但是,当更改对 HttpPost 的调用并将列表作为 x-www-form-urlencoded 值传递时,该方法有效。
是否可以将列表传递给 Get 方法,或者我必须使用 Post ?因为它实际上不是一个 post 方法(因为它返回值的 JSON 模型,并且没有任何内容保存到服务器)。
如果您使用 MVC WebAPI,那么您可以像这样声明您的方法:
[HttpGet]
public int GetTotalItemsInArray([FromQuery]int[] listOfIds)
{
return listOfIds.Length;
}
然后你像这样查询:blabla.com/GetTotalItemsInArray?listOfIds=1&listOfIds=2&listOfIds=3
这会将数组 [1, 2, 3] 匹配到 listOfIds 参数中(并按预期返回 3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)