asp.net browser download response.write

ASP.Net Descargar el archivo al navegador del cliente



browser download (2)

Intenta cambiarlo a

Response.Clear(); Response.ClearHeaders(); Response.ClearContent(); Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "text/plain"; Response.Flush(); Response.TransmitFile(file.FullName); Response.End();

Estoy escribiendo una página de prueba simple para descargar un archivo de texto a un navegador al hacer clic en el botón. Estoy recibiendo un error realmente extraño que nunca he visto antes. ¿Alguna idea?

El error se produce en ''Response.End ();'' y el archivo nunca llega al navegador del cliente

Código:

string filePath = "C://test.txt"; FileInfo file = new FileInfo(filePath); if (file.Exists) { Response.ClearContent(); Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "text/plain"; Response.TransmitFile(file.FullName); Response.End(); }

Error:

No se puede evaluar la expresión porque el código está optimizado o un marco nativo está en la parte superior de la pila de llamadas.


Solo una pequeña adición a la solución anterior si tiene problemas con el nombre del archivo descargado ...

Response.AddHeader("Content-Disposition", "attachment; filename=/"" + file.Name + "/"");

Esto devolverá el nombre exacto del archivo, incluso si contiene espacios u otros caracteres.