Una de las acciones de mi controlador devuelve un archivo al usuario. Me gustaría que el usuario se presente con el cuadro de diálogo de descarga (abrir/guardar), independientemente del tipo de archivo. Esto funciona bien cuando el tipo de archivo es .doc, .docx, .xlsx, etc., pero cuando el archivo es .txt, .xps, .pdf (a veces) o .html, se abre en el navegador.Asp.net MVC FileContentResult - impide la apertura en el navegador
¿Hay alguna manera de evitar que el archivo se abra en el navegador, y sólo permiten al usuario abrir en una ventana separada sin tener que navegar fuera de la página actual?
La solicitud del archivo se realiza utilizando jQuery's $.ajax({})
.
Relacionado: Hacer que el navegador maneje la solicitud y mostrar el mensaje emergente en lugar de la llamada AJAX que recibe el contenido del archivo como una cadena de respuesta se explica por this ansewr, pero esta pregunta obliga al navegador a manejar el archivo en una cierta forma una vez que se recibe.
Esto produce el mismo resultado que 'application/unknown', que, por desgracia, es algo que estoy tratando de evitar. Para comodidad del usuario, sería mejor permitirles abrir el archivo con un solo clic (simplemente no en la ventana actual del navegador). – yoozer8
Si puede hacer esto en su servidor, intente configurar el encabezado "Content-Disposition" en "attachment; filename = whatever.xyz" – Ray
Eso es exactamente. Gracias. – yoozer8