如何从Asp.Net Core的IActionResult返回一个MemoryStream作为Excel文件

5

我正在开发一个针对.Net 5Asp.Net Core项目。

我有这个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
请问如何解决此问题?或者如果还有其他方法可以将stream返回为Excel文件,请与我分享。谢谢!
1个回答

8

我使用FileStreamResult修复了问题:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接