Report Viewer控件显然只能在Web窗体页面中使用(我使用的是MVC 2)。所以,我制作一个,添加我的报告,并尝试从我的MVC 2站点中的一个视图链接到它。我一直得到错误“无法找到资源”。我已经尝试了所有可能的URL,我可以想到它让它工作。我甚至将超链接工具拖放到页面中并将其设置为链接到相关的Web表单并获得相同的结果。
Web窗体位于/ Views / MaintenanceReports文件夹中。我已经尝试了〜/ Views / MaintenanceReports / DriverList.aspx(有和没有* .aspx)和其他一些URL。但是,我非常确定这应该是URL。
我还将此页面路由添加到Global.asax文件中,希望它可以做一些神奇的事情routes.MapPageRoute("DriverListing", "MaintenanceReports/DriverListing", "~/Views/MaintenanceReports/DriverListing.aspx");
根据我的一位程序员的建议,我还尝试将一个iframe添加到MVC View中,该视图将Web表单作为其来源。这也给了我同样的错误。
我手头上有Pro ASP.NET MVC 2这本书并没有给我任何帮助。它基本上说应该没有问题。
服务器运行IIS 7并安装了.NET 4框架。
通常情况下,我会花更多的时间寻找答案,但我现在很紧张。这是我在这里的最后一天(实习),我想在离开之前完成这件事。
感谢您的帮助。
答案 0 :(得分:0)
尝试使用StopRoutingHandler
。我认为问题是你需要告诉MVC忽略这些网址。
routes.Add(new Route("MaintenanceReports/{*resource}",
new StopRoutingHandler()));
<强>更新强>
看起来上述内容不适用于Views
文件夹中的路由。简单的解决方案是将WebForms
移出Views
文件夹,WebForms
与MVC一起开箱即用。
答案 1 :(得分:0)
您也可以添加此行以显示.asxp页面
<httpHandlers>
<!-- see below -->
<clear />
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory"/>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>