2014-09-10 68 views
0

因此,我正在对此进行一些研究,并且从我可以收集的信息来看,用于实现此目的的技术已被逐步淘汰。从控制器发送渲染报告到一个视图

我有一个RDLC文件。我试图使用LocalReport类,但它似乎严重不喜欢接收呈现的报告。我正在使用MVC5。

任何人都可以推荐一些我可以看作是替代使用LocalReport类或RDLC文件的东西。或者任何人都能够提供一些关于如何正确执行此操作的见解。

请让我知道你是否想看看我使用的一些代码。

谢谢:)

回答

0

好吧好吧,我设法避开我的问题是这样的:

我创建报告,并将其保存到被每天删除的临时文件夹。

System.IO.File.WriteAllBytes(Server.MapPath("/TempReports/report.pdf"), renderedBytes); 

我的控制器操作只是返回了一个链接到呈现的报告。

JavaScript的:

function GenerateReport() { 
     $.ajax({ 
      type: "POST", 
      url: "/Reporting/ReportAction", 
      data: { param1: "", param2: "" }, 
      success: function (data) { 
       var ua = window.navigator.userAgent; 
       var msie = ua.indexOf("MSIE "); 
       if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { 
        //set of functions specific to IE 
        var success = new PDFObject({ url: data }).embed("reportGenIe"); 
        $("#reportGenIe").attr('hidden', false); 
       } 
       else { 
        //Normal browsers 
        var success = new PDFObject({ url: data }).embed("reportGen"); 
       } 
      }, 
      error: function() { 
       alert("Unable to generate the report."); 
      } 
     }); 

对于IE我使用的iFrame和其他浏览器我使用的物体

<div role="content" style="padding-bottom:20px; height:650px !important"> 
    <iframe id="reportGenIe" hidden="hidden"></iframe> 
    <object id="reportGen"></object> 
</div> 

这包括围绕IE得到拒绝动态地显示一个pdf我。

我使用了PDFObject js库,它似乎已经完成了这个技巧。 http://pdfobject.com/

相关问题