C#控制器接收空对象:POST请求参数绑定失败问题排查
ASP.NET Core POST请求体绑定为空的解决方案
问题根源
你定义的AddRoleFeatureRequest类使用的是公共字段,而ASP.NET Core的模型绑定系统默认只支持绑定带有get/set访问器的属性,因此请求体的JSON数据无法映射到字段中,导致输出的属性值全为空。
修复代码
将类中的字段修改为属性:
public class AddRoleFeatureRequest { public Guid Id { get; set; } public string? Name { get; set; } public string? Description { get; set; } }
额外检查项
- 确认Postman请求的
Content-Type请求头设置为application/json,否则框架无法正确识别并解析JSON格式的请求体。 - 路由参数
{id}与请求体中的id名称相近,若担心混淆可修改路由参数名,比如将路由改为[HttpPost("{roleId}/features")],方法参数对应改为Guid roleId,避免与请求体的Id属性产生歧义。
内容的提问来源于stack exchange,提问作者Samu R
相关产品推荐
相关产品推荐

