Telerik HTML5报告查看器不会引发报告实例错误

时间:2014-04-25 19:53:17

标签: javascript asp.net-mvc reporting-services telerik

我正在尝试在我的MVC 4项目上显示telerik HTML5报告查看器小部件。我在部分div中定义了报表查看器,如下所示。

@(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版本,我知道错误意味着实例未定义,但我无法弄清楚报告实例的确切位置以解决此问题。任何人都可以对此有所了解吗?

2 个答案:

答案 0 :(得分:1)

就我而言,我使用的是ASP .Net MVC 4项目模板 - 它附带了jQuery v1.7.1。 Telerik报告至少需要jQuery v1.9。我将jQuery更新为2.1 - 并且js运行时错误消失了。

答案 1 :(得分: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的报告实例。