我有一个上载api
,该列表接收IFiles
的列表以上载到服务器。现在,我需要一个附加字符串来描述上传,以获取详细信息。我当前的控制器如下:
[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
// upload to server and other stuff
}
要访问字符串,我已经更改了控制器:
[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files, string uploadDescription)
{
//some code
}
我现在可以访问uploadDescription
。测试时,我以MultipartFormDataContent
的形式发送文件,并以查询参数的形式发送描述。
尽管这行得通,但我不确定是否可以通过post
操作以这种方式发送查询参数是否是最佳实践。有更好的方法吗?
答案 0 :(得分:0)
执行这种Post
方法没有最佳实践,但是据我所知,将单元DTO传递给Post
或Get
的方法会更好,也很容易理解,因此我认为最好将其更改为:
public class FileSpec
{
public List<IFormFile> Files {get; set;}
public string UploadDescription {get; set;}
}
并更改您的方法签名,例如:
public async Task<IActionResult> Post([FromBody]FileSpec fileSpec)
无论如何,这取决于您自己传递参数还是将其作为DTO传递。
您还可以了解有关参数绑定here的更多信息。