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

.NET Core POST请求传对象列表时控制器List参数始终为null如何解决

绑定失败核心原因

ASP.NET Core 内置模型绑定默认仅支持绑定公共可读写属性,不会对公共字段进行绑定,你的FileTypesRequest类中定义的FileTypes是公共字段,而非带get/set访问器的属性,这是导致绑定失败的根本原因。
你直接用JsonConvert解析可以成功,是因为Newtonsoft.Json默认支持公共字段的反序列化,和框架模型绑定的规则存在差异。

解决方案

1. 把字段修改为公共属性

修改FileTypesRequest类的定义,为FileTypes添加get;set访问器:

public class FileTypesRequest
{
    // 新增get;set访问器,从字段改为可读写属性
    public List<FileTypeChoice> FileTypes { get; set; }
}

修改后即可正常匹配Postman发送的驼峰命名fileTypes参数,.NET Core 3.0+默认使用的System.Text.Json序列化器默认支持驼峰命名和帕斯卡命名的不敏感匹配。

2. 可选:显式指定序列化映射名称

如果修改属性后依然存在匹配问题,可以通过特性显式指定JSON字段名和属性的对应关系:

  • 若使用默认System.Text.Json序列化器:
using System.Text.Json.Serialization;

public class FileTypesRequest
{
    [JsonPropertyName("fileTypes")]
    public List<FileTypeChoice> FileTypes { get; set; }
}
  • 若项目配置使用Newtonsoft.Json作为序列化器:
using Newtonsoft.Json;

public class FileTypesRequest
{
    [JsonProperty("fileTypes")]
    public List<FileTypeChoice> FileTypes { get; set; }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:18:01