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

C# Web API接收前端JSON数组时[FromBody]参数为null如何解决

问题原因排查
  • 类型不匹配:前端提交的myJson是包含多个EquiposTorneo结构的数组,但后端接口[FromBody]绑定的是单个EquiposTorneo对象,类型完全不对应,模型绑定失败自然返回null。
  • 额外包装了请求体:使用axios提交时,你把数据又套了一层{myJson: xxx}的对象,相当于最终请求体的结构是{"myJson": [{"id_torneo":1,...},...]},和后端期望的结构完全不一致。
  • 多余的JSON序列化:axios默认会自动把提交的JS对象序列化为JSON,手动调用JSON.stringify反而会把数组转成纯字符串,后端无法正确反序列化为对象集合。
解决方案

前端修改

删除多余的序列化操作和外层包装,直接提交数组即可:

registrar () {
    const params = this.rowData
    axios.post(url + 'Torneo/AddEquipos', params)
      .then((response) => {
        console.log(response)
    })
}

后端修改

把接口接收的参数类型从单个EquiposTorneo改为集合类型即可:

[HttpPost]
[Route("api/Torneo/AddEquipos")]
public JsonResult InsertTorneoEquipos([FromBody]List<EquiposTorneo> myJson)
{
    return new JsonResult("OK");
}

如果你坚持要保留前端{myJson: 数组}的提交结构,需要新增一个包裹类作为参数类型:

public class EquiposTorneoRequest
{
    public List<EquiposTorneo> myJson { get; set; }
}
// 接口对应修改为
public JsonResult InsertTorneoEquipos([FromBody]EquiposTorneoRequest request)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:48:04