.NET核心Web API接受整数列表作为HTTP GET API中的输入参数 [英] .NET CORE WEB API accept list of integers as an input param in HTTP GET API

查看:19
本文介绍了.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆