在ASP.NET Core MVC中,可能会遇到Post请求中IFormFile返回null的情况。这通常是因为在视图中未正确命名表单中的文件输入控件所致。
例如,如果视图中的文件输入控件命名为“file”,那么在控制器中获取该输入控件的值应该使用名称“file”来获取。如果控制器中使用了不正确的名称,则IFormFile将会返回null。
以下是一个示例控制器,它正确地从视图中获取文件输入控件的值:
[HttpPost]
public async Task Upload(IFormFile file)
{
if (file == null || file.Length == 0)
return Content("file not selected");
// 处理文件上传
// ...
return RedirectToAction("Index");
}
在这个示例中,控制器的参数名与视图中文件输入控件的名称一致。如果您的代码仍然返回null,请确保控制器中的名称与视图中的名称相匹配。