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

.NET Core中WebAPI查询参数值为空问题排查

问题原因与解决方案

嘿,我一眼就看到问题所在了——你重复使用了[FromQuery]特性,导致模型绑定逻辑混乱,所以query.query才会一直是null。

具体问题分析

你在两个地方同时标注了[FromQuery]:

  • 控制器方法的SearchQuery query参数上用了[FromQuery],告诉框架要从查询字符串绑定整个复杂对象;
  • 又在SearchQuery类的query属性上用了[FromQuery(Name = "query")],重复指定绑定规则。

这种重复标注会让.NET Core的模型绑定系统产生冲突,无法正确将查询参数的值映射到属性上。

两种可行的修复方案

方案一:移除参数上的[FromQuery]

因为你的属性名query和查询参数名query完全一致,框架会自动完成绑定,不需要额外标注:

[HttpGet]
public IActionResult Get(SearchQuery query) { }

public class SearchQuery { 
    public string query { get; set; } 
}

方案二:移除模型属性上的[FromQuery]

保留参数上的[FromQuery],让框架从查询字符串绑定整个对象:

[HttpGet]
public IActionResult Get([FromQuery]SearchQuery query) { }

public class SearchQuery { 
    public string query { get; set; } 
}

额外说明

如果你的查询参数名和属性名不一致(比如查询参数是searchText,属性名是Query),只需要在属性上单独标注[FromQuery(Name = "searchText")]即可,不需要在参数上加[FromQuery](加了也不影响,但属于冗余操作)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:07:03