Tengo una acción de controlador que descarga un archivo de un blob azul basado en el nombre de referencia del contenedor (es decir, nombre de ruta completo del archivo en el blob). El código es como la siguiente:Manejo de FileContentResult cuando no se encuentra el archivo
public FileContentResult GetDocument(String pathName)
{
try
{
Byte[] buffer = BlobStorage.DownloadFile(pathName);
FileContentResult result = new FileContentResult(buffer, "PDF");
String[] folders = pathName.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
// get the last one as actual "file name" based on some convention
result.FileDownloadName = folders[folders.Length - 1];
return result;
}
catch (Exception ex)
{
// log error
}
// how to handle if file is not found?
return new FileContentResult(new byte[] { }, "PDF");
}
La clase BlobStorage
no es mi clase de ayuda para descargar la corriente de la burbuja.
Mi pregunta se expresa en el comentario del código: ¿Cómo debo manejar el escenario cuando no se encuentra el archivo/secuencia? Actualmente, estoy pasando un archivo PDF vacío, que creo que no es la mejor manera de hacerlo.
@Stecya: Esto se llama desde el ver a través de javascript. –
¿Cuál debería ser el tipo de datos en la llamada ajax? @Alex R podría mostrar también cómo se hace la llamada ajax en la vista, sería útil. – michael
La pregunta ya está respondida. ¿También estás teniendo el mismo problema? La llamada desde el javascript es simplemente 'window.location.href =" GetDocument? PathName = "+ docPath;'. Eso llamará a la acción del controlador anterior y responderá en consecuencia. –