我试图在visual studio 2012中用asp.net mvc4(razor语法)创建一个水晶报告。我在网上看到一些文章,有两种方法可以用剃刀视图实现这一点。
1:没有crystalreportviewer的简单pdf渲染 2:创建aspx页面并加载crystalreportviewer。
我正在使用第二种方法创建一个aspx页面,在我的控制器操作中,我有以下代码。
Controller.cs(行动)
if (this.HttpContext != null && this.HttpContext.Session != null)
{
this.HttpContext.Session["ReportName"] = "AccountStatement.rpt";
this.HttpContext.Session["rptSource"] = reportInfo;
}
// Redirecting generic report viewer page from action
Response.Redirect("~/AspForms/aspnetgeneric.aspx")
在aspnetgeneric.aspx页面加载的代码隐藏中,我有:
string strReportName = System.Web.HttpContext.Current.Session["ReportName"].ToString();
ReportDocument rd = new ReportDocument();
string strRptPath = Path.Combine(Server.MapPath("~/Reports"), strReportName);
rd.Load(strRptPath);
if (source.GetType().ToString() != "System.String")
rd.SetDataSource(source);
CrystalReportViewer1.ReportSource = rd;
代码运行正常,运行时没有任何异常,但不会在浏览器窗口中显示crystalreportviewer或报表本身。 (在所有主流浏览器上测试过)。我尝试将目标框架从4.5更改为4.0但仍然相同。 我可能会缺少什么?有线索吗?
答案 0 :(得分:2)
您可以检查它是否显示浏览器控制台窗口中的任何错误。 (您可以按F12进入浏览器控制台窗口。)
您可以尝试以下方式
将 aspnet_client 文件夹从c:\ inetpub \ wwwroot文件夹复制到新网站(项目的)根文件夹。
答案 1 :(得分:1)
我通过以下方式使其成功:
我在SAP Support上读到“不支持IIS Express”,因为它不允许集成第三方组件'所以我将我的网站转移到IIS7.5。
然后我将crystalviewer13文件夹和aspnet_client文件夹一起复制到我的网站的根目录,并给予完整的管理员权限。
最后我不得不在aspnetgenric.aspx中添加了javascript文件(crystalreportviewers13 / js / crviewer / crv.js),它带回了crystalreportviewer。
我想分享这个,如果它可以在将来帮助某人。