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

ASP.NET Core Web API接收Angular传递复杂对象值错误问题求助

问题根源
  • 复杂对象无法直接作为URL路径参数:你在前端拼接URL时直接用${pageInfo}会触发对象默认的toString方法,最终路径中该位置的值为[object Object]字符串,后端完全无法解析为对应Model的属性。
  • Angular HttpClient.post参数调用错误:该方法的标准传参顺序为请求地址、请求体内容、可选配置项,你当前错误将code作为请求体、pageInfo作为配置项传递,请求体内容完全不符合后端预期。
  • 后端参数绑定逻辑错误:路由模板中的路径参数仅支持绑定字符串、数字等简单类型,无法直接映射到自定义复杂类,即使前端传对了序列化后的内容,后端也无法自动完成属性赋值。
修复方案

后端修改

调整路由模板,移除路径中的pageInfo参数,给pageInfo参数添加[FromBody]特性,指定从POST请求体中读取内容绑定对象:

[HttpPost("get/{code}")]
public IActionResult Get(string code, [FromBody] Model pageInfo)
{
    var data = _Service.GetData(code, pageInfo);
    if (data != null)
    {
        // 原有业务逻辑
    }
    else
    {
        // 原有业务逻辑
    }
}

前端修改

移除URL中pageInfo的拼接,将pageInfo作为POST请求体传递给post方法:

getAllData(code:any,pageInfo:any):Observable<any>{    
    console.log(code, pageInfo);
    const url = `/get/${code}`;    
    return this.http.post<any>(url, pageInfo);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:12:02