Oded vous a donné les meilleures solutions, mais, si vous voulez toujours le faire de cette façon, ici il va:
Vous pouvez utiliser cette jquery plugin.
Votre page Web aurait un lien hypertexte:
<a id="PrintAjaxReport" href="javascript:{}">Print report Ajax</a>
jQuery:
$(document).ready(function() {
$("#PrintAjaxRepor").click(function() {
$.download('PdfReport.aspx', "filename=mySpreadsheet", "POST");
});
});
PdfReport.aspx
public partial class PdfReport : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var pdfDocumentName = Request.Params["filename"].ToString() + ".pdf";
var myReport = "Razor Syntax Quick Reference.pdf";
var FileName = Path.Combine(Path.Combine(Server.MapPath("~"), "Temp"), myReport);
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("content-disposition", "attachment; filename=" + pdfDocumentName);
Response.TransmitFile(FileName);
Response.End();
}
}
Vous pouvez trouver un échantillon (OpenPDFjQuery) here.
Si les fichiers sont énormes et que vous avez besoin d'afficher en quelque sorte la progression de _download_, alors vous devriez vous référer à: http://stackoverflow.com/questions/676348/allow-user-to-download-file-using- ajax –
Une raison pour laquelle un lien simple ne fera pas? – Oded
Etes-vous en train d'essayer de lire un pdf sur le serveur? –