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