2010-01-24 13 views
15

Me pregunto si haces algo como¿File() En asp.net mvc cierra la secuencia?

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

si el archivo() cerraría la corriente para usted? Desde que traté de poner la "secuencia" en una declaración de uso, siempre me dio un error diciendo que la transmisión se cerró.

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

¿Cuándo te da el error de que la transmisión está cerrada? –

+1

Cuando toca return File(). Dice que la transmisión está cerrada. – chobo2

+0

Esto podría ayudar. [Usando Statement] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx) – griegs

Respuesta

6

Si está utilizando el objeto File para enviar el archivo resultante para su descarga como bob.html entonces sí.

Creo que todas las transmisiones estándar (OutputStream, FileStream, CryptoStream) intentarán purgarse cuando estén cerradas o desechadas.

Hay una serie de clases dentro del framework MVC que implementan la clase base FileResult.

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

¿En qué otras situaciones usaría File() otro agradecimiento al enviar el archivo para descargar? – chobo2