我正在尝试将旧的 ReportViewer Webform 集成到我当前的 MVC3 项目中。我希望它可以在http://<server>/Reports/ViewReport.aspx
. 起初,我在项目的根目录中创建了一个名为 的文件夹Reports
,将页面转储到那里,它工作得很好。
但是,我现在有一个 Area 也称为Reports
,我必须删除该文件夹才能使默认路由正常工作。
如何配置我的路由,以使 Webform URL 看起来像是来自Reports
我的项目中的其他地方?
我正在尝试将旧的 ReportViewer Webform 集成到我当前的 MVC3 项目中。我希望它可以在http://<server>/Reports/ViewReport.aspx
. 起初,我在项目的根目录中创建了一个名为 的文件夹Reports
,将页面转储到那里,它工作得很好。
但是,我现在有一个 Area 也称为Reports
,我必须删除该文件夹才能使默认路由正常工作。
如何配置我的路由,以使 Webform URL 看起来像是来自Reports
我的项目中的其他地方?
最简单的方法是使用IIS URL Rewrite模块。对您的应用程序的代码或路由没有任何更改。只需将您的网页放在某个也可访问的非 MVC 相关文件夹中。
http://www.iis.net/download/urlrewrite
但除此之外,您可以尝试将文件直接放在 area 文件夹中,因为RouteCollection.RouteExistingFiles
默认情况下false
这意味着您的文件应该由通常的 Asp.net Web 表单管道处理。
最重要的是,尽管您没有将文件放在配置了System.Web.HttpNotFoundHandler
处理程序的文件夹中。默认情况下,视图文件夹具有这些配置,因此子文件夹树中的文件无法从请求级别访问。应用程序当然可以访问它们(这就是 MVC 的工作方式)。