我有一个Asp.Net MVC 4项目,我正在使用ReportViewer生成一些报告。
由于MVC中使用Chrome和Firefox与ReportViewer的兼容性很低或没有兼容性,我的方法是在PDF流中呈现ReportViewer并简单地返回流如下:
// using Microsoft.ReportViewer.WebForms.dll [10.0.0.0].
using (var viewer = new ReportViewer())
using (var bc = new MyBusinessClass())
{
viewer.LocalReport.ReportEmbeddedResource = @"MyEmbeddedName";
var dsobj = bc.GetData();
var ds = new ReportDataSource("DsName", dsobj);
var ps = new ReportParameterCollection();
ps.Add(new ReportParameter("ParameterName", DateTime.Now));
viewer.LocalReport.DataSources.Add(ds);
viewer.LocalReport.SetParameters(ps);
string deviceInfo = "some validated info";
string mimeType, encoding, fileNameExtension;
string[] streams;
Warning[] warnings;
var buffer = viewer.LocalReport.Render("PDF", deviceInfo,
out mimeType, out encoding, out fileNameExtension,
out streams, out warnings);
return File(new MemoryStream(buffer), "application/pdf", "MyPdfName.pdf");
}
我已经有一些报告,所有报告都很好。但是现在我正在使用相同的方法创建一个新的,但是当我打开动作时,PDF是空的,即它只是一个页面,此页面中没有任何内容(空白)。
但如果这不够奇怪,现在我使用浏览器IE(9)测试相同,并且报告呈现得很好,所以我决定尝试使用FireFox并且什么都没得到。
问题:
所以这就是我不明白的地方,我在回归之前用PDF格式进行渲染,为什么浏览器可以影响这个呢?
如果出现任何问题,是否可以强制ReportViewer抛出异常? '因为现在,不要只是空页错误。
最重要的是,如何解决此问题(在Chrome中工作)?
答案 0 :(得分:1)
这似乎是最新版Chrome中的一个错误。它于2015年10月14日报道,并且似乎在最近的版本中得到修复。
对我来说,更新到Chrome 46.0.2490.80解决了这个问题。
来源:https://code.google.com/p/chromium/issues/detail?id=543018