file()在asp.net mvc中关闭流吗?

时间:2010-01-24 23:45:04

标签: c# asp.net-mvc

我想知道你是否做了像

这样的事情
public FileResult result()
{
   Stream stream = new Stream();
   return File(stream,"text/html","bob.html");
}

如果File()会关闭你的流?因为我试图将“stream”放在using语句中,但它总是给我一个错误,说流已关闭。

public FileResult result()
{
    using(Stream stream = new Stream())
    {
       return File(stream,"text/html","bob.html");
    }
}

1 个答案:

答案 0 :(得分:7)

如果您使用File对象将结果文件作为bob.html发送下载,则为是。

我相信所有标准Streams(OutputStream,FileStream,CryptoStream)都会在关闭或处理时尝试刷新。

MVC框架中有许多类实现基类FileResult类。

System.Web.Mvc.FileResult
System.Web.Mvc.FileContentResult
System.Web.Mvc.FilePathResult
System.Web.Mvc.FileStreamResult