Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 在MVC3区域中使用网络表单_Asp.net Mvc 3_Webforms_Asp.net Mvc Areas - Fatal编程技术网

Asp.net mvc 3 在MVC3区域中使用网络表单

Asp.net mvc 3 在MVC3区域中使用网络表单,asp.net-mvc-3,webforms,asp.net-mvc-areas,Asp.net Mvc 3,Webforms,Asp.net Mvc Areas,我正在尝试将一个旧的ReportViewer Web表单集成到我当前的MVC3项目中。我想在http:///Reports/ViewReport.aspx。起初,我在我的项目根目录中创建了一个名为Reports的文件夹,将页面转储到其中,它工作得很好 但是,我现在有一个区域也叫做Reports,为了使默认路由正常工作,我必须去掉该文件夹 如何配置路由,使Web表单URL看起来来自报告,即使它实际位于项目的其他位置?最简单的方法是使用IIS URL重写模块。不更改应用程序的代码或路由。只需将您的网

我正在尝试将一个旧的ReportViewer Web表单集成到我当前的MVC3项目中。我想在
http:///Reports/ViewReport.aspx
。起初,我在我的项目根目录中创建了一个名为
Reports
的文件夹,将页面转储到其中,它工作得很好

但是,我现在有一个区域也叫做
Reports
,为了使默认路由正常工作,我必须去掉该文件夹


如何配置路由,使Web表单URL看起来来自
报告
,即使它实际位于项目的其他位置?

最简单的方法是使用IIS URL重写模块。不更改应用程序的代码或路由。只需将您的网页放在一些与MVC无关的文件夹中即可访问

但是,否则,您可以尝试将文件直接放在区域文件夹中,作为
RouteCollection。RouteExistingFiles
默认为
false
,这意味着您的文件应通过通常的Asp.net web表单管道进行处理


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

只要确保您的URL规则仅适用于
/Reports/ViewReport.aspx
,如果您对整个
/Reports
路径执行此操作,您将断开到控制器的路由。@JesseWebb:没错,谢谢您指出这一点,因为我认为这是不言而喻的。