当 Controller 中的方法返回文件流或文件或文件内容结果对象时,配置资源的正确方法是什么?

例如,当执行以下操作时:

   using CrystalDecisions.CrystalReports.Engine;

public ActionResult Report()
{
    ReportClass rptH = new ReportClass();
    rptH.FileName = Server.MapPath("[reportName].rpt");
    rptH.Load();
    rptH.SetDataSource([datatable]);
    Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
    return File(stream, "application/pdf");
}

TIA

最佳答案

当在结果执行期间调用WriteFile时,FileStreamResult(即创建的文件)将流包装在using语句中。这将关闭并处理流。根据所创建的流的类型,它实际上可能导致错误,以关闭或将用法包装在 Controller 操作中的using语句中。

10-05 18:02