所以我正在对此进行一些研究,从我可以收集的信息来看,过去已经淘汰的技术已被逐步淘汰。
我有一个RDLC文件。我试图使用LocalReport类,但看起来该视图严重不喜欢接收渲染的报告。我正在使用MVC5。
是否有人能够推荐我可以看到的东西作为使用LocalReport类或RDLC文件的替代方法。或者任何人都能够提供有关如何正确执行此操作的一些见解。
如果您想查看我正在使用的一些代码,请与我们联系。
谢谢:)
答案 0 :(得分: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/