MVC区域和虚拟文件夹

时间:2010-06-30 17:40:28

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

我希望能够将子“文件夹”添加到MVC区域。例如,我有一个区域

~/areas/Support

而且,在一些经典的ASP代码中,我需要引用一个包含文件

<!-- #include virtual="/Support/_inc/myinclude.asp"-->

只是为了笑容,我尝试包含指向此虚拟文件夹的虚拟文件夹/support,但当然,这会覆盖MVC路由并阻止MVC执行。

建议?

1 个答案:

答案 0 :(得分:0)

我找到了一个似乎有些不同寻常的解决方案,但到目前为止一直在努力。

在我的测试环境(Win7 Ultimate 64上的IIS7.5,ASP.NET MVC2)下,我编辑了配置文件

c:\windows\system32\inetsrv\config\applicationHost.config

并添加了像这样的虚拟文件夹

<virtualDirectory path="/Support/_inc" physicalPath="C:\websites\virt\...\support\_inc" />
<virtualDirectory path="/support/man" physicalPath="c:\websites\http\...\support\man" />
<virtualDirectory path="/support/man/docs" physicalPath="c:\websites\virt\...\support\man\docs" />
<virtualDirectory path="/Support/docs" physicalPath="C:\websites\virt\...\support\docs" />
<virtualDirectory path="/Support/man/_inc" physicalPath="C:\websites\virt\...\support\man\_inc" />

因为在/support没有虚拟文件夹(或真实文件夹),MVC将其路由到/ Areas / Support ...项目。但是,在ASP.NET接管之前,任何与应用程序配置中的虚拟文件夹匹配的内容似乎都会被IIS路由,因此ASP可以正确处理它们。

有趣。