如何 return MemoryStream 作为 Excel 文件来自 Asp.Net Core 中的 IActionResult

How to return a MemoryStream as an Excel file from IActionResult in Asp.Net Core

我正在做一个 Asp.Net Core 项目,目标是 .Net 5

我有这个 ActionResult :

     public async Task<ActionResult> ExportMarksForm(int testId)
            {
                var stream = new MemoryStream();
                // Some logic to Save the workbook as stream

                return File(stream, "application/ms-excel", "xxx.xlsx");
            }

问题: 一切正常,但当我下载文件时,我收到一条 excel 消息,告诉我文件已损坏,这意味着发生错误或文件写入操作未完成。

我尝试了 断点,我看到 stream 变量有 bytes.

那么,请问我该如何解决这个问题?或者如果有任何其他解决方案 return a stream 作为 Excel 文件请与我分享。 提前致谢。

我使用 FileStreamResult:

修复了问题
return new FileStreamResult( stream , "application/ms-excel" )
                   {
                       FileDownloadName = "xxx.xlsx"
                   };