在MVC3区域中使用Webform

时间:2012-08-23 22:12:45

标签: asp.net-mvc-3 webforms asp.net-mvc-areas

我正在尝试将旧的ReportViewer Webform集成到我当前的MVC3项目中。我希望它可以在http://<server>/Reports/ViewReport.aspx获得。首先,我在项目的根目录中创建了一个名为Reports的文件夹,将页面转储到那里,并且工作得很好。

但是,我现在有一个名为Reports的区域,我必须删除该文件夹才能使默认路由正常工作。

如何配置我的路由,以便Webform网址似乎来自Reports,即使它在我项目的其他地方也是如此?

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用 IIS URL重写模块。不会更改您的应用程序的代码或路由。只需将您的网页放在某个非MVC相关文件夹中,该文件夹也可以访问。

http://www.iis.net/download/urlrewrite

但是否则您可以尝试将文件直接放在区域文件夹中,因为RouteCollection.RouteExistingFiles默认为false,这意味着您的文件应该由通常的Asp处理。网络形式管道。

最重要的是,您不要将文件放在配置有System.Web.HttpNotFoundHandler处理程序的文件夹中。默认情况下,视图文件夹具有这些配置,因此子文件夹树中的文件无法从请求级别访问。应用课程可以访问它们(这就是MVC的工作方式)。