You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8 Web API:如何以逗号分隔传入int数组至控制器方法

解决方案:ASP.NET Core 8 支持逗号分隔的QueryString数组绑定

你可以通过轻量级类型转换器实现需求,无需编写完整自定义模型绑定器,也不用手动将字符串转数组,完全贴近原生体验:

方法1:局部生效(仅针对单个参数)

  1. 定义一个极简的类型转换器(代码量远少于完整模型绑定器):
public class CsvIntArrayConverter : TypeConverter
{
    public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
    {
        return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType);
    }

    public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
    {
        if (value is string csvString)
        {
            return string.IsNullOrEmpty(csvString) 
                ? Array.Empty<int>() 
                : csvString.Split(',', StringSplitOptions.RemoveEmptyEntries)
                           .Select(int.Parse)
                           .ToArray();
        }
        return base.ConvertFrom(context, culture, value);
    }
}
  1. 在控制器参数上添加[TypeConverter]特性:
[HttpGet("{storeId:int}")]
public async Task<IActionResult> Index(
    int storeId, 
    int requiredQuantity, 
    [FromQuery, TypeConverter(typeof(CsvIntArrayConverter))] int[] plus)
{
    try
    {
        // 业务逻辑实现
        return Ok(response);
    }
    catch (Exception ex)
    {
        return StatusCode(500, new { message = "处理请求时发生错误,请稍后重试。" });
    }
}

方法2:全局生效(所有int[]类型的Query参数自动支持)

如果多个接口都需要这个功能,可在启动时全局注册转换器,无需逐个参数添加特性:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers()
    .AddMvcOptions(options =>
    {
        // 为int[]类型注册CSV转换逻辑
        TypeDescriptor.AddAttributes(typeof(int[]), new TypeConverterAttribute(typeof(CsvIntArrayConverter)));
    });

var app = builder.Build();

// 中间件配置...
app.Run();

效果说明

配置完成后,两种调用方式都能正常解析:

  • 原有多参数方式:GET https://localhost:44385/test/test/650?plus=13&plus=4412&plus=4099&requiredQuantity=41
  • 新的逗号分隔方式:GET https://localhost:44385/test/test/650?plus=13,4412,4099&requiredQuantity=41

内容的提问来源于stack exchange,提问作者JsonStatham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:07:41