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

.Net多重复QueryString参数映射规则及官方文档咨询

.NET 查询字符串参数映射与CGI格式规则说明

你定义的控制器端点是正确的,[FromQuery]特性专门用于指定参数从查询字符串绑定,而非请求体——这对GET请求的集合类型参数(比如你的List<string> description)尤为关键,毕竟GET请求通常没有请求体。

以下是.NET官方文档中明确的核心参数绑定特性与CGI格式规则:

核心参数绑定特性

  • [FromQuery]:强制参数从查询字符串获取,支持通过重复键名(如description=asd&description=qwe)绑定到集合类型(List、数组等)
  • [FromRoute]:从路由模板中提取参数(比如你代码里的{search}路由参数,默认会自动绑定到同名的string search参数,无需额外标记)
  • [FromHeader]:从HTTP请求头中读取参数
  • [FromBody]:从请求体中获取参数,多用于POST/PUT等请求,支持JSON、表单数据等格式
  • [FromForm]:从表单数据中读取参数,适配application/x-www-form-urlencoded或multipart/form-data编码的请求

查询字符串格式规则

  • 集合类型参数支持两种绑定格式:
    1. 重复键名:?key=value1&key=value2(你使用的这种,兼容标准CGI场景)
    2. 索引式:?key[0]=value1&key[1]=value2,部分场景下可使用,但.NET默认优先识别重复键名
  • 复杂对象参数:通过点分隔键名实现绑定,比如?User.Name=Alice&User.Age=30,会自动映射到包含Name和Age属性的User对象
  • 可选参数:若参数为可空类型(如string?)或带有默认值,查询字符串中可省略该键,框架会自动使用默认值或null

你的代码示例中,search参数来自路由、description来自查询字符串的重复键,完全符合.NET的参数绑定规则,是正确的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:07:35