我有一个接收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
动作发送查询参数是最好的做法还是不行。有一个更好的方法吗?
有做这样一个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。