Comment faire pour télécharger un Fichier excel et un fichier PDF à l'aide de Jquery Ajax MVC
Je suis à l'aide de l'Application MVC. Je veux télécharger le fichier excel et un fichier PDF à l'aide de Jquery AJAX.
Dans la page d'Affichage de
<a href="javascript:void(0)" class="excelbtn" data-is-pdf="false" >Export To Excel</a>
<a href="javascript:void(0)" class="pdfbtn" data-is-pdf="true">Export To PDF</a>
Ajax de Jquery
$.ajax({
type: 'GET',
url: '/Report/ExportReports',
contentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
data: {
Parameter1: Parameter1,
Parameter2: Parameter2,
},
cache: false,
success: function (isSuccess) {
if (isSuccess.Success) {
}
} else {
alert('Something went wrong. Please try again after sometime...');
}
},
error: function (data, status, e) {
}
});
Dans Le Contrôleur
public ActionResult ExportReports(string Parameter1, string Parameter2)
{
if (Parameter1 = "PDF")
{
DataTable exportData = grid.GetExportData(dataSource);
MemoryStream pdfStream = gridData.ExportToPDF(exportData, repType);
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + executeRepType + ".pdf");
Response.BinaryWrite(pdfStream.ToArray());
Response.End();
}
else
{
DataTable exportData = grid.GetExportData(dataSource);
MemoryStream excelStream = gridData.ExportToExcel(exportData, executeRepType);
//Write it back to the client
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=" + executeRepType + ".xlsx");
Response.BinaryWrite(excelStream.ToArray());//.GetAsByteArray());
Response.End();
}
return View();
}
Donc dans le contrôleur de l'ensemble des données, mais nous ne sommes pas en mesure de revenir dans l'affichage de la page.
pourquoi avez-vous besoin d'ajax pour cela?
OriginalL'auteur Jagadisha B S | 2014-11-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer cette Solution.
Dans La Page D'Affichage De
si vous souhaitez Modifier la valeur de paramètre 1 et paramètre2 dynamiquement que vous pouvez utiliser javascript comme décrit ci-dessous
En Javascript:-
Dans Le Contrôleur:-
OriginalL'auteur Deepak Patel
Je vous suggère de faire des choses un peu plus simplement avec l'aide d'outils qui viennent de sortir de la boîte.
Le Système.Web.MVC.Le contrôleur.Fichier vous propose une méthode qui permettra de faire exactement ce dont vous avez besoin en utilisant le tableau d'octets ou d'un ruisseau ou le chemin du fichier. Ainsi, au lieu de cette partie (et même pour le format pdf)
Je voudrais utiliser quelque chose comme ceci
Et il n'y a pas besoin de demande asynchrone. De sorte que vous pouvez simplement utiliser le lien direct.
Response.End()
, la page d'arrêts de traitement après je écrire le fichier.Selon ce que vous utilisez pour le front-end il y a le couple de solutions. La classique serait d'utiliser @Ajax.ActionLink avec
OnSuccess
AjaxOption où vous pouvez définir la fonction javascript qui sera exécutée après controllersuccesfully le traitement de votre demande. Comme alternative, vous pouvez utiliser @Html.ActionLink et spécifiez l'id ou une classe attr pour cela, par exemple@Html.ActionLink("LinkText","Action",null, new {@id="file"})
et attraper cliquez avec jQuery, post de code$('#file').click(function(){$.post(this.href..)})
OriginalL'auteur Valerii