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

Angular前端传FormGroup至.NET后端,FromBody无法正确捕获Amount值

问题描述

前端采用Angular框架,后端使用.NET。当前端将FormGroup数据提交至后端接口时,控制器断点处发现通过FromBody绑定的DonationAmount模型中Amount值始终为0,但浏览器开发者工具显示API请求的Payload数据正常。

后端代码如下:

public class DonationAmount
{
    public int Amount { get; set; }
}

[Route("create-checkout-session")]
[ApiController]
public class CheckoutApiController : Controller
{
    [HttpPost]
    public ActionResult Create([FromBody] DonationAmount donationAmount)
    {
        try
        {
            ...
        }
        catch (StripeException ex)
        {
            ...
        }
        catch (Exception ex)
        {
            ...
        }
    }
}

已尝试谷歌搜索、查看YouTube教程、咨询ChatGPT,也匹配了JSON数据与模型属性的大小写,但问题仍未解决,求问题原因及解决办法。


可能的原因及解决方案

1. 请求Content-Type不匹配

Angular的HttpClient默认发送application/json类型请求,但如果手动修改了请求头为其他类型(比如application/x-www-form-urlencoded),.NET的FromBody模型绑定会失效。检查前端请求代码,确保Content-Type正确:

// 正确示例
this.http.post('/create-checkout-session', formGroup.value, {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  })
});

2. JSON序列化大小写配置问题

.NET默认的System.Text.Json序列化是区分大小写的,若前端发送的是小写amount,而模型属性是大写Amount,绑定会失败并赋值默认值0。解决方式二选一:

  • 前端修改请求Payload的键为Amount(首字母大写)
  • 后端给模型属性添加特性指定对应JSON键,或全局配置不区分大小写:
    // 单个属性配置
    public class DonationAmount
    {
        [JsonPropertyName("amount")]
        public int Amount { get; set; }
    }
    
    // 全局配置(Program.cs/Startup.cs)
    builder.Services.AddControllers()
        .AddJsonOptions(options =>
        {
            options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
        });
    

3. 数据类型不匹配

检查前端Payload中Amount的值是否为数字类型。如果前端传的是字符串(比如"100"),而模型属性是int,转换失败会导致值为0。确认Payload里的Amount是数字而非字符串。

4. 请求路由不匹配

确认前端请求的URL和后端路由完全一致,比如是否遗漏了前缀(比如/api/create-checkout-session)。路由不匹配时可能进入错误的方法,导致模型未正确绑定。

5. JSON结构不匹配

如果前端发送的是嵌套结构(比如{ donation: { amount: 100 } }),而非直接的{ amount: 100 },模型绑定会找不到对应字段,最终赋值默认值0。仔细核对Payload的结构是否和DonationAmount模型完全对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:32:47