这个问题可能是由于视图模型中的属性名称与表单中的文件输入字段名称不匹配所导致的。以下是一个解决方法,可以确保文件上传时能够正确地绑定到视图模型的属性上。
首先,确保在视图中使用正确的表单标记来上传文件。例如,使用 标记:
然后,在视图模型中创建一个属性来接收上传的文件:
public class MyViewModel
{
public IFormFile MyFile { get; set; }
}
在控制器的操作方法中,确保使用 [HttpPost]
特性来处理 POST 请求,并且将视图模型作为参数传递给操作方法:
[HttpPost]
public IActionResult Upload(MyViewModel model)
{
if (model.MyFile != null)
{
// 处理上传的文件
// ...
return RedirectToAction("Success");
}
else
{
return View();
}
}
这样,当用户上传文件时,model.MyFile
属性将会被正确地绑定到上传的文件上,您就可以像处理其他属性一样处理它。
请确保在 ASP.NET Core 3.1 中使用上述示例代码,这将确保您正确地处理文件上传并避免返回 NULL 的问题。