2010-01-24 70 views
15

我想知道,如果你這樣做文件()在asp.net mvc關閉流?

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

如果文件()將關閉流的嗎?由於我試圖將「流」放入使用語句中,但它總是給我一個錯誤,說流已關閉。

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

它什麼時候會給出流關閉的錯誤? – 2010-01-24 23:59:11

+1

當它命中時返回File()。它說流是封閉的。 – chobo2 2010-01-25 00:03:09

+0

這可能有幫助。 [使用聲明](http://msdn.microsoft.com/en-us/library/yh598w02.aspx) – griegs 2010-01-24 23:51:23

回答

6

如果您使用的是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 
+1

其他情況下,您將使用File()其他感謝發送文件下載? – chobo2 2010-01-25 01:10:35