在ASP.NET Core 3.1中,当使用大型表单数据时,可能会遇到控制器操作方法中的参数模型始终为空的问题。解决此问题的方法是使用Request.Form
对象手动绑定表单数据到模型。
以下是一个包含代码示例的解决方法:
[FromForm]
特性绑定表单数据到一个IFormCollection
对象:[HttpPost]
public IActionResult MyActionMethod([FromForm] IFormCollection form)
{
// 处理表单数据
// ...
// 调用模型绑定方法手动绑定表单数据到模型
var model = new MyModel();
TryUpdateModelAsync(model, prefix: "", valueProvider: form);
// 处理模型数据
// ...
}
[BindProperty]
特性标记需要绑定的属性:public class MyModel
{
[BindProperty]
public string Property1 { get; set; }
[BindProperty]
public int Property2 { get; set; }
// 其他属性
// ...
}
name
属性与模型类中的属性名称一致:
通过以上步骤,可以手动绑定大型表单数据到模型,并在控制器操作方法中使用模型数据。
上一篇:ASP.NET Core 3.1 _CookieConsentPartial.cshtml 接受 cookie
下一篇:ASP.NET Core 3.1 | 如何使用服务集合进行单元测试,并使用NullLogger作为ILogger实现