2009-10-14 18 views
53

Considere la necesidad de devolver un archivo de texto sin formato de un controlador a la persona que llama. La idea es descargar el archivo, en lugar de verlo como texto sin formato en el navegador.ASP.NET MVC: devolver el archivo de texto sin formato para descargar desde el método de controlador

Tengo el siguiente método, y funciona como se esperaba. El archivo se presenta en el navegador para su descarga, y el archivo se rellena con la cadena.

Me gustaría buscar una implementación 'más correcta' de este método, ya que no estoy 100% cómodo con el tipo de devolución void.

public void ViewHL7(int id) 
{ 
    string someLongTextForDownload = "ABC123"; 

    Response.Clear(); 
    Response.ContentType = "text/plain"; 
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.hl7", id.ToString())); 
    Response.Write(someLongTextForDownload); 
    Response.End(); 
} 

Respuesta

112

utilizan el método del archivo de la clase del controlador para devolver un tvanfosson Tks FileResult

public ActionResult ViewHL7(int id) 
{ 
    ... 

    return File(Encoding.UTF8.GetBytes(someLongTextForDownLoad), 
       "text/plain", 
        string.Format("{0}.hl7", id)); 
} 
+0

. Tu respuesta me ayudó mucho. –

+0

¿no sería bueno si SO pudiera tomar las clases .net para que podamos ver las sobrecargas sin tener que buscar en Google: p – Jimmy

5

Usted querrá volver una FileContentResult de su método.

Cuestiones relacionadas