2014-09-10 2 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/

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