【发布时间】:2021-12-14 17:43:11
【问题描述】:
使用 .NET Core 3.1,我有以下 Http 客户端,它构建了一个包含 multipart/form-data 主体的 HTTP POST:
public async Task SendRequest(string randomString, IFormFileCollection files)
{
var form = new MultipartFormDataContent();
form.Add(new StringContent(randomString), "randomString");
foreach (var file in files)
{
var stream = new MemoryStream();
await file.CopyToAsync(stream, cancellationToken);
form.Add(new StreamContent(stream), "files");
}
using var request = new HttpRequestMessage(HttpMethod.Post, $"api/endpoint")
{
Content = form
};
await _httpClient.SendAsync(request);
}
接收控制器如下所示:
[Consumes("multipart/form-data")]
[HttpPost]
public async Task ReceiveForm([FromForm] RequestModel request)
{
//Do stuff
}
RequestModel 看起来像这样:
public class RequestModel
{
[JsonPropertyName("randomString")]
public string RandomString { get; set; }
[JsonPropertyName("files")]
public IFormFileCollection Files { get; set; }
}
我看到的问题是 requestModel.RandomString 被填充,但 requestModel.Files 没有 - 它为空。
我做错了什么?
【问题讨论】:
标签: asp.net-core http .net-core asp.net-core-webapi