2014-01-30 4 views
3

Я делаю AJAX POST как:Открыть файл PDF в AJAX POST

$.ajax({ 
    type: 'POST', 
    url: rootUrl("Home/PrintInvoice/12"), 
    success: function (result) { 
     $("#TestInvoicePrint").empty(); 
     $("#TestInvoicePrint").html(result); 
     window.open(result); 
    } 
}); 

Где я получаю PDF файл в результате от действий MVC как,

public ActionResult PrintInvoice(long ID) 
{ 
    var data = db.Documents.Where(x => x.InvoiceNumber == ID); 
    ReportDocument rd = new ReportDocument(); 
    rd.Load(Server.MapPath("~/Reports/InvoiceDocument.rpt")); 
    ConnectionInfo ConnInfo = new ConnectionInfo { ServerName = "10.0.0.154,1433\\sqlexpress", UserID = "CueReader", Password = "[email protected]", DatabaseName = "Cue" }; 

    ParameterFieldDefinitions parmFields = rd.DataDefinition.ParameterFields; 
    ParameterValues pvals = new ParameterValues(); 

    rd.ParameterFields["DocumentID"].CurrentValues.IsNoValue = true; 

    Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 
    stream.Seek(0, SeekOrigin.Begin); 

    return new FileStreamResult(stream, "application/pdf");    
} 

Как я могу использовать PDF файл в мой элемент DOM из ajax POST?

+0

Вы можете просто сделать это, как HTTP GET. 'Window.open (rootUrl ("Главная/PrintInvoice/12"))'. Используйте OutputCacheAttribute для предотвращения кэширования, если это необходимо. – LostInComputer

+0

Похоже на этот вопрос: http://stackoverflow.com/questions/9840230/how-to-display-a-pdf-stream-in-a-browser-using-javascript – ppoliani

+0

Можете ли вы пояснить, как вы хотите использовать PDF в вашем доме? AFAIK, если вы хотите показать PDF-файл, вам необходимо встроить элемент управления читателем. Вы можете найти эту тему полезной: http://stackoverflow.com/questions/291813/recommended-way-to-embed-pdf-in-html – kiprainey

ответ

0

было бы лучше, если бы вы могли бы Аякса дать вам URL (динамический?), А затем обновить объект данных = атрибут

Смежные вопросы