Mi aplicación se implementó utilizando MVC 3, .net. Estoy tratando de generar un archivo de Excel con solo hacer clic en un botón. La llamada a la acción del controlador se realiza utilizando Ajax. Mi problema principal es: Durante la generación de archivos, intento mostrar una imagen en la pantalla para informar al usuario de la operación entrante. Puedo mostrar muy bien la imagen, pero no puedo ocultarla después de que se complete la operación. Los codei estoy usando es: CódigoOcultar imagen usando Javascript después de que se complete la acción del controlador MVC3
Javascript: Código
$("input.DownloadExcelReport").click(function (e) {
e.preventDefault();
var parameter = -- code to fetch parameter value;
var outputViewUrl = (the url is created here);
showLoading(); -- This function displays the image
window.location.href = outputViewUrl;
});
Acción controlador:
public ActionResult DownExcelReportForAssortment(Guid parameter)
{
try
{
//the contents for the file generation are fetched here..
// Write contents to excel file
if (memoryStream != null)
{
var documentName = "Report.xls";
byte[] byteArrary = memoryStream.ToArray();
return File(byteArrary, "application/vnd.ms-excel", documentName);
}
}
catch (Exception ex)
{
LogManager.LogException(ex);
}
}
no vuelvo resultado JSON para el llamado javascript método donde puedo escribir el código para esconde la imagen Estoy devolviendo un archivo que puede guardar el usuario y la acción se completa.
¿Por favor, sugiéveme/ayúdame de cómo puedo ocultar la imagen una vez que se completa la operación de generación de archivos?
aprecio la ayuda ...
Para evitar problemas con las cookies, prefiero manejar esto usando una variable de sesión. Entonces establece la variable de sesión después del código de larga ejecución en su acción y utiliza un script de sondeo similar en su js que envía solicitudes ajax a otra acción que verifica si existe la sesión. Si lo hace, mata la sesión y devuelve una respuesta "verdadera" a la devolución de llamada js y apaga el cargador. –