MVC - 在控制器中配置资源

时间:2010-05-11 16:37:18

标签: asp.net-mvc resources controller dispose

当控制器中的方法返回文件流或文件或filecontentresult对象时,处理资源的正确方法是什么?

对于做以下事情的前者:

   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

1 个答案:

答案 0 :(得分:6)

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