当 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语句中。