我正在使用 .NET 6 发布具有大表单数据(约 200Mb)的表单,并且没有任何文件。
这是我在前端的形式:
@using (Html.BeginForm(FormMethod.Post, new { id = "frm", @autocomplete = "off", @enctype="multipart/form-data" }))
{
@Html.AntiForgeryToken()
...
}
Run Code Online (Sandbox Code Playgroud)
和后端:
[ValidateAntiForgeryToken]
[DisableRequestSizeLimit]
[HttpPost]
public async Task<IActionResult> SearchList(VM_SearchList data)
Run Code Online (Sandbox Code Playgroud)
引自SkrfaceVerificationToken我已经在前端
提交了一个字段,并ValidateAntiForgeryToken在后端用一个过滤器进行了装饰,所以它看起来不像是一个验证问题。
从Matthew Steven Monkan和这个答案中,我已经尝试了那里的所有设置,例如DisableRequestSizeLimit上面的过滤器,并且还尝试使用设置为 500Mb 的过滤器RequestFormLimits进行装饰。RequestSizeLimit
[ValidateAntiForgeryToken]
[RequestFormLimits(MultipartBodyLengthLimit = 524288000)]
[RequestSizeLimit(524288000)]
[HttpPost]
public async Task<IActionResult> SearchList(VM_SearchList data)
Run Code Online (Sandbox Code Playgroud)
并且还尝试设置Program.cs:
builder.Services.Configure<HttpSysOptions>(options =>
{
options.MaxRequestBodySize = int.MaxValue;
});
builder.Services.AddMvc();
builder.Services.Configure<FormOptions>(x =>
{
x.ValueLengthLimit = int.MaxValue; …Run Code Online (Sandbox Code Playgroud)