如何从MVC 2应用程序显示Web窗体页面?

时间:2011-09-02 18:54:29

标签: asp.net-mvc

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框架。

通常情况下,我会花更多的时间寻找答案,但我现在很紧张。这是我在这里的最后一天(实习),我想在离开之前完成这件事。

感谢您的帮助。

2 个答案:

答案 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>