我对这两行之间的区别有点困惑:
req.OpenReadStream();
和
Request.Form.Files.GetFile("FileContent").OpenReadStream()
这是我目前所知道的,如果有误请纠正我,我知道它们都是为了读取文件,第一种方法只接受文件,但是第二种方法接受文件和一个 json 值,, 但我仍然不明白的是语法方面的差异
这是 post 方法的一个片段:
public IActionResult Post(IFormFile req)
{
req.OpenReadStream();
return Ok();
}
[HttpPost]
public IActionResult Post([FromForm] RequestModel req)
{
Request.Form.Files.GetFile("FileContent").OpenReadStream()
return Ok();
}
//....
public class RequestModel
{
public string FileContent { get; set; }
public string SomeRandomString { get; set; }
}
最佳答案
没有。他们都属于IFormFile
.
唯一的区别是您访问界面的方式。
在您的第一个示例中,您直接访问它,因为它被传递到您的方法的构造函数中。
在您的第二个示例中,您从 Files
访问它收藏HttpRequest
通过使用 GetFile
获取文件返回所述接口(interface)的方法。
正如Panagiotis Kanavos所说,后者根本无法测试。
关于c# - 这两种 Post 方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53373809/