2014-04-25 152 views
1

我想在我的MVC 4项目上显示telerik HTML5报告查看器小部件。我有部分div中定义的报告查看器,如下所示。Telerik HTML5报告查看器不抛出报告实例错误

@(Html.TelerikReporting().ReportViewer() 
    .Id("reportViewer1") 
    .ServiceUrl("/api/reports/") 
    .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html") 
    .ReportSource(new TypeReportSource() { TypeName = "DialerReports.ReportCatalog, DialerReports" }) 
    .ViewMode(ViewModes.INTERACTIVE) 
    .ScaleMode(ScaleModes.SPECIFIC) 
    .Scale(1.0) 
    .PersistSession(false) 

我也跟着上了Telerik的网站上设立所以是JavaScript文件包含在项目的指南。我确实将它们放置在MVC包中,而不是直接放入,但我不确定这是否会产生影响。

我遇到的问题是这样的。当网页加载错误时,会从JavaScript运行时错误报告Viewer.js文件中抛出:无报告实例。我正在使用报告查看器的8.0.14版本,并且我知道错误意味着实例未定义,但我无法确切知道报告实例定义在哪里以解决此问题。任何人都可以对此有所了解吗?

回答

1

在我的情况下,我使用ASP .Net MVC 4项目模板 - 它带有jQuery v1.7.1。 Telerik报告至少需要jQuery v1.9。我更新jQuery到2.1 - 和js运行时错误消失了。

+0

是的Telerik支持也建议,我会发布什么解决方案原来是在下面 – theDarse

1

好这个问题,实际上造成的,因为我在routeconfig.cs文件更改的默认路由是:

config.Routes.MapHttpRoute(
     name: "ActionsApi", 
     routeTemplate: "api/{controller}/{action}/{id}/{id1}/{id2}/{id3}", 
     defaults: new { 
      controller = "Actions", 
      id = RouteParameter.Optional, id1 = RouteParameter.Optional, id2 =  RouteParameter.Optional, id3 = RouteParameter.Optional } 
    ); 

然后添加你应该在这之后的另一条路线有默认路由配置。问题实际上是telerik报表查看器api试图使用上面的路径路径,而不是正确的路径路径。 Jquery实际上正在抛出正确的错误,因为报告API没有报告实例。