你需要倒带
MemoryStream
通过设置
ms.Position = 0
然后再返回。我还建议关闭
StreamWriter
和
CsvWriter
以确保所有缓冲区都被刷新:
var ms = new MemoryStream();
using (var writer = new StreamWriter(ms, leaveOpen : true)) // Leave the MemoryStream open after disposing of the writers
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
foreach (var line in value.Select(x => x.pOLineDTO))
csv.WriteRecord(line);
// Rewind the MemoryStream
ms.Position = 0;
var result = new FileStreamResult(ms, "text/csv")
{
FileDownloadName = string.Format("PoLines-{0}.csv", value.FirstOrDefault()?.pOLineDTO?.PurchaseOrderId)
};
return result;