.NET核心Web API接受整数列表作为HTTP GET API中的输入参数 [英] .NET CORE WEB API accept list of integers as an input param in HTTP GET API
本文介绍了.NET核心Web API接受整数列表作为HTTP GET API中的输入参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是.Net Core 3+Web API。
下面是我的操作的外观,它使用HTTP GET,并且我希望传递几个字段,其中一个字段是整数列表。
[HttpGet]
[Route("cities")]
public ActionResult<IEnumerable<City>> GetCities([FromQuery] CityQuery query)
{...}
这里是CityQuery
类-
public class CityQuery
{
[FromQuery(Name = "stateids")]
[Required(ErrorMessage = "stateid is missing")]
public string StateIdsStr { get; set; }
public IEnumerable<int> StateList
{
get
{
if (!string.IsNullOrEmpty(StateIdsStr))
{
var output = StateIdsStr.Split(',').Select(id =>
{
int.TryParse(id, out var stateId);
return stateId;
}).ToList();
return output;
}
return new List<int>();
}
}
}
是否有什么通用方法可以用于接受整数列表作为输入,而不接受字符串,然后对其进行分析?
或者有没有更好的方法来做到这一点?我试着用谷歌搜索,但没找到什么。提前谢谢。
推荐答案
这有助于
[HttpGet]
[Route("cities")]
public ActionResult<IEnumerable<City>> GetCities([FromQuery] int[] stateids)
{
...
}
但查询字符串将更改为
https://localhost/api/controller/cities?stateids=1&;stateids=2&;stateids=3
如果需要逗号分隔的带整数的查询字符串,可以使用自定义模型绑定器
https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding?view=aspnetcore-3.1
这篇关于.NET核心Web API接受整数列表作为HTTP GET API中的输入参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文