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

Controller端点接收的POST提交对象缺失Location字段问题咨询

问题原因排查及解决方案

1 优先排查构建失效问题

  • 手动清理构建缓存:删除项目根目录下的bin、obj文件夹,在终端执行dotnet clean命令清理残留文件,再执行dotnet build确认编译无错误警告后,重新启动项目。
  • 校验VS Code构建配置:检查.vscode/launch.json中的preLaunchTask配置是否指向正确的构建任务,再检查.vscode/tasks.json中对应构建任务的命令是否携带--no-build等跳过构建的参数,确保启动项目前会强制编译最新代码。
  • 清理残留进程:打开任务管理器杀掉所有同名dotnet进程,避免旧版本服务后台驻留、端口被占用,导致实际访问的始终是未更新的旧服务。

2 若确认构建正常,排查序列化与模型绑定问题

  • 补充Location类无参构造函数:当前Location类仅定义了带lat、lng参数的有参构造,.NET默认的Json序列化器(包括System.Text.Json和Newtonsoft.Json)反序列化时需要无参构造函数才能实例化对象,在Location类中添加空的无参构造即可:
public Location(){}
  • 强制匹配字段名大小写:如果全局序列化配置修改了默认的驼峰命名规则,可给EstablishmentDto中的Location属性手动指定序列化别名,用System.Text.Json就加[JsonPropertyName("location")],用Newtonsoft.Json就加[JsonProperty("location")],确保和请求中的location字段名完全匹配。
  • 校验请求头格式:确认POST请求的Content-Type为application/json,如果使用form-data、x-www-form-urlencoded格式提交嵌套对象,会默认无法解析location这类层级结构的字段。
  • 检查全局过滤规则:排查是否有全局序列化忽略配置、自定义模型绑定器将Location类型或Location属性过滤掉,你代码中已存在PropertyName特性带Ignore = true的用法,需确认没有针对Location属性的同类忽略配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:36:05