Asp.net-Mvc-3
帶有 MVC3 的 Crystal Reports 查看器
我正在建構一個 ASP.NET MVC3 Web 應用程序,我想使用水晶報表建構一些報表並使用水晶報表查看器顯示它們。我在網上搜尋,但在 MVC3 Web 應用程序中沒有找到任何可靠的方法。您對如何操作有任何提示/想法嗎?
如果您不介意一些黑客攻擊,那實際上很容易。(假設 CR4VS2010)
首先將 WebForms 頁面添加到您的項目中,然後將水晶報表查看器控制項添加到其中。
驗證它添加了對以下內容的引用:
CrystalDescisions.CrystalReports.Engine,CrystalDescisions.ReportSource,CrystalDescisions.Shared和CrystalDescisions.Web.然後將 PageRoute 添加到您的應用程序中,指向新添加的頁面。
最後,這是 BLANK 最大的痛苦,你需要讓 Crystal 的圖像處理程序工作。有很多假設的方法,無論是在網上還是在 SO,它們都沒有真正為我工作,所以我求助於作弊:
public class CrystalImageHandlerController : Controller { // // GET: /CrystalImageHandler.aspx public ActionResult Index() { return Content(""); } protected override void OnActionExecuted(ActionExecutedContext filterContext) { var handler = new CrystalDecisions.Web.CrystalImageHandler(); var app = (HttpApplication)filterContext.RequestContext.HttpContext.GetService(typeof(HttpApplication)); if (app == null) return; handler.ProcessRequest(app.Context); } }將此控制器的路由添加為 /CrystalReportsImageHandler.aspx,這是 CR 期望它的處理程序所在的位置。這也可以在Areas中使用,只需根據需要更改處理程序和頁面路由即可。
請記住,您將無法使用 Razor 佈局。因此,您需要藉助其他方式來獲得視覺連續性。(我使用了 IFrame)