【发布时间】:2020-10-29 18:40:26
【问题描述】:
我正在使用 .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>();
}
}
}
有没有一种通用的方法可以用来接受整数列表作为输入而不接受字符串然后解析它?
或者有更好的方法吗?我尝试谷歌搜索,但找不到太多。提前致谢。
【问题讨论】:
-
在查询参数中传递值数组没有约定。每种语言和框架都使用自己的约定。你试过
[FromUri] int[] stateList吗?你想如何传递这些参数? -
ASP.NET Core 的约定是允许多个参数实例,例如
ids=1&ids=2&ids=3并将它们绑定到单个ids数组
标签: asp.net-core asp.net-core-webapi asp.net-core-3.1