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

ASP.NET Core 7提交大数据更新请求返回HTTP 400错误排查

问题原因

ASP.NET Core 默认对 x-www-form-urlencoded 格式的 POST 请求设置了大小限制,当提交的数据量超过阈值时,服务器会直接返回 HTTP 400 错误,且不会进入你的控制器 POST 方法,这就是你遇到的核心问题。

解决方案

你可以通过以下两种方式调整表单请求的大小限制:

1. 全局配置(应用于所有请求)

在 Program.cs 中添加表单选项配置,全局调整所有表单请求的大小限制:

builder.Services.Configure<FormOptions>(options =>
{
    // 设置单个表单值的最大长度,单位:字节(示例为100MB)
    options.ValueLengthLimit = 104857600;
    // 如果涉及多部分表单(如文件上传),需同时调整此值
    options.MultipartBodyLengthLimit = 104857600;
    // 设置内存缓冲区阈值,超过后会写入磁盘
    options.MemoryBufferThreshold = 104857600;
});

2. 局部配置(仅针对特定控制器/方法)

如果只想针对这个 Edit 方法调整限制,可在 POST 方法上添加 [RequestFormLimits] 特性:

[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
[RequestFormLimits(ValueLengthLimit = 104857600)] // 100MB,按需调整
public async Task<IActionResult> Edit(ReticleSetEntity entity)
{
    if (ModelState.IsValid)
    {
        // ... 原有逻辑
    }
    // ... 原有逻辑
}
额外说明
  • Postman 能正常请求可能是因为测试数据未达到实际限制,或是 Postman 的请求处理逻辑与浏览器表单提交存在差异,但核心问题仍需通过调整上述配置解决。
  • 调整限制时请根据实际业务需求设置合理值,避免过大导致服务器资源占用过高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 08:12:41