Asp.net-Mvc-3

帶有 MVC3 的 Crystal Reports 查看器

  • August 1, 2019

我正在建構一個 ASP.NET MVC3 Web 應用程序,我想使用水晶報表建構一些報表並使用水晶報表查看器顯示它們。我在網上搜尋,但在 MVC3 Web 應用程序中沒有找到任何可靠的方法。您對如何操作有任何提示/想法嗎?

如果您不介意一些黑客攻擊,那實際上很容易。(假設 CR4VS2010)

首先將 WebForms 頁面添加到您的項目中,然後將水晶報表查看器控制項添加到其中。

驗證它添加了對以下內容的引用:

CrystalDescisions.CrystalReports.Engine, CrystalDescisions.ReportSource, CrystalDescisions.SharedCrystalDescisions.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)

引用自:https://stackoverflow.com/questions/6966593