【发布时间】:2018-08-16 03:00:30
【问题描述】:
我仍然无法理解如何使用 Async 方法。我在控制器中有以下代码。
[HttpPost]
public async Task<IActionResult> ManualUpload([Bind("MktRpt")] ManualMktRptFileUpload itemFileUpload)
{
var manager = new RecyclableMemoryStreamManager();
using (var stream = manager.GetStream())
{
await itemFileUpload.MktRpt.CopyToAsync(stream);
await _azureStorageService.saveBlob(stream, Path.GetFileName(itemFileUpload.MktRpt.FileName));
}
itemFileUpload.status = "Success";
return View(itemFileUpload);
}
我的服务方式也很简单:
public async Task saveBlob(MemoryStream stream, string filename)
{
var blockBlob = _container.GetBlockBlobReference(filename);
await blockBlob.UploadFromStreamAsync(stream);
}
还有一个简单的模型类:
public class ManualMktRptFileUpload
{
[Required]
[Display(Name = "Manual Report")]
public IFormFile MktRpt { get; set; }
public string status { get; set; } = "Constructed";
}
当我在 Azure 中检查我的 Blob 容器时,文件在那里,但是它是零字节。
我相信这是因为我没有正确等待流传输,但我不知道如何解决它。
【问题讨论】:
标签: c# asp.net-mvc asynchronous async-await