Tia*_*oso 9 crystal-reports asp.net-mvc-3
我正在构建一个ASP.NET MVC3 Web应用程序,我想使用水晶报表构建一些报表,并使用水晶报表查看器显示它们.我在网上搜索过,在MVC3网络应用程序中找不到任何可靠的方法.你有任何关于如何做的提示/想法吗?
如果你不介意一些黑客攻击它实际上很容易.(假设CR4VS2010)
首先将WebForms页面添加到项目中,然后将Crystal Reports查看器控件添加到其中.
验证它添加了对以下内容
CrystalDescisions.CrystalReports.Engine,
CrystalDescisions.ReportSource,
CrystalDescisions.Shared,和CrystalDescisions.Web.
然后将PageRoute添加到您的应用程序,从而导致新添加的页面.
最后,这是BLANK最大的痛苦,你需要让Crystal的Image Handler工作.有许多假想的方式,无论是在网络还是在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);
}
}
Run Code Online (Sandbox Code Playgroud)
将路径添加到此控制器作为/CrystalReportsImageHandler.aspx,这是CR期望它处理的位置.这也可以在区域中使用,只需根据需要更改处理程序和页面路径.
请记住,您将无法使用Razor布局.因此,您需要采用其他方法来获得视觉连续性.(我用IFrames)