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

Ajax传递POHeaderViewModel至后端[FromBody]参数为何为Null?

Razor页面Ajax传参[FromBody]参数为Null的常见原因及解决办法
  • 请求头Content-Type未正确设置
    [FromBody]特性要求请求体为JSON格式,而jQuery Ajax默认的Content-Type是application/x-www-form-urlencoded。如果不明确指定application/json,后端无法正确解析请求体中的JSON数据,导致参数绑定失败为null。
    解决:在Ajax配置中添加contentType: "application/json; charset=utf-8"。

  • 前端对象未序列化为JSON字符串
    直接将JavaScript对象传入Ajax的data参数时,jQuery会自动将其转换为表单编码格式,而非JSON字符串。后端接收不到符合要求的JSON,无法完成模型绑定。
    解决:使用JSON.stringify(objPOHeaderViewModel)将对象转换为JSON字符串后再传入data。

  • 前后端模型属性名不匹配
    默认的JSON序列化器(如System.Text.Json)区分大小写,若前端属性名(如orderLines)与后端模型属性名(如OrderLines)不一致,会导致属性绑定失败,极端情况下整个模型会被绑定为null。
    解决:确保前后端属性名完全一致;或在后端模型属性上添加[JsonPropertyName("前端属性名")](System.Text.Json)或[JsonProperty("前端属性名")](Newtonsoft.Json)进行名称映射。

  • 嵌套复杂类型/集合结构不匹配
    若POHeaderViewModel包含集合(如订单行列表)或嵌套对象,前端构建的结构不符合后端模型的期望(比如集合不是标准对象数组、嵌套对象属性缺失),会导致整个模型绑定失败。
    解决:调试前端对象结构,确保订单行等嵌套数据的属性、层级与后端模型完全对应。

  • 模型验证失败终止绑定
    若后端模型包含[Required]等验证特性,而前端传入的对象缺少必填字段,模型绑定过程中验证失败,可能导致参数为null(部分场景下会返回带验证错误的对象,但也存在返回null的情况)。
    解决:检查后端模型的验证规则,确保前端传入的对象包含所有必填项;或启用模型验证日志,查看具体错误信息。

  • 请求方法不符合要求
    [FromBody]仅支持POST、PUT等包含请求体的HTTP方法,若使用GET请求,后端无法从请求体中读取数据,参数必然为null。
    解决:将Ajax的method(或type)设置为"POST"或"PUT"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 19:22:34