即使表单具有enctype =" multipart / form-data" IFormFiles也始终收到null。标签

时间:2017-01-19 11:28:04

标签: c# asp.net-core asp.net-core-mvc

当我们在方法中指定[FromBody]标签时,有人能告诉我asp.net core mvc framework做了什么吗?

// POST api/values
[HttpPost]
public IActionResult register ([FromBody]CustomerViewModel custView)
{
    if (ModelState.IsValid)
    {
     repo.create_customer(custView);
     return Ok(custView);
    }
    return Redirect("/");
}

这是我们想要接收的视图模型。

public class CustomerViewModel
{
     [Required(ErrorMessage = "Please enter your name!")]
     public string name { get; set; }

     //[Required(ErrorMessage = "Please upload your resume!")]
     //public IFormFile cv { get; set; }

}

我注意到当我不使用[FromBody]标签时,我仍然可以正确地接收对象(具有文件属性),当我添加[FromBody]时,它无法通过http接收文件流,为什么呢我们甚至想使用[FromBody]标签来接收http帖子?

忘记提及,即使使用multipart-tag

也没有用

1 个答案:

答案 0 :(得分:0)

尝试将表单上的内容类型设置为“multipart / form-data”。这是我们在上传文件时应该使用的。规范是https://www.ietf.org/rfc/rfc1867.txt