MVC 自其发布之日起,便成为程序开发者的焦点。在阅读本文章之前,推荐阅读ActiveReports 6 在 MVC 3 中的使用方法:链接。在本篇文章中,我们将介绍如何在 MVC Razor 模板中使用 ActiveReports。
Razor 视图引擎建立在 HTML 代码之上,和 aspx 视图引擎有所不同。另一个区别是 Razor 视图引擎不允许添加服务器端控件。ActiveReports 中的 WebViewer 为服务器端控件,但是这并不意味着在 MVC 3 Razor视图引擎中就无法使用 ActiveReports。
实现方法很简单,只要避免使用服务器端控件即可。请不要忘记,ActiveReports 支持导出到多种格式。所以,我们可以把 ActiveReports 导出到 PDF 文件,然后在浏览器中浏览报表。
下面是实例运行截图:
实现步骤如下:
1.创建 MVC 3 Razor 工程。在后台导出 ActiveReports 到 PDF 文件。请参考代码片段:
public ActionResult Pdf() { DataDynamics.ActiveReports.ActiveReport rpt = new DataDynamics.ActiveReports.ActiveReport(); rpt.LoadLayout(Server.MapPath("~/Content/Reports/CustomersReport.rpx")); rpt.Run(); MemoryStream pdfRptStream = new MemoryStream(); DataDynamics.ActiveReports.Export.Pdf.PdfExport pdfExport1 = new DataDynamics.ActiveReports.Export.Pdf.PdfExport(); pdfExport1.Export(rpt.Document, pdfRptStream); pdfRptStream.Position = 0; byte[] pdf = pdfRptStream.ToArray(); return File(pdf, "application/pdf"); }
2.在 Index.cshtml 页中显示 PDF 文档。可以使用 IFrame 控件来显示 PDF 文件。代码如下:
<iframe src="@Url.Action("Pdf", "Home")" height="560" width="1000"/>
十分简单吧?赶快下载 Demo 体验吧:“AR_Demo_MVC.zip (7.96 mb)”