我在部署我的应用程序时遇到了一些问题,在进行故障排除时,我在
Web.Config
文件夹中发现了 Views
文件。为了缩小问题来源的可能性,我试图找出该 Web.Config
文件的用途,但找不到太多信息。
所以基本上我的问题是:
Web.config
文件夹中的Views
文件有什么作用?在 ASP.NET webforms 中,我认为要在文件夹中使用单独的
web.config
文件,该文件夹必须在 IIS 中设置为虚拟文件夹。 MVC 中是否属于这种情况(即Views
文件夹是否需要配置为虚拟文件夹)?
不,因为这个额外的
web.config
文件,您不需要配置虚拟文件夹。
web.config
文件存在于Views
文件夹中,以防止通过您的控制器以外的任何方式访问您的视图。在 MVC 设计模式中,控制器应该路由请求并将呈现的视图返回给调用客户端。
换句话说,您在
www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx
的视图应该 not 可以直接访问。
如果您查看
web.config
文件,它实际上将 HttpNotFoundHandler
注册到所有路径和动词:
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
或者,在 IIS 7 中它可能看起来像
<add name="BlockViewHandler" path="*.aspx" verb="*"
preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
它为视图配置编译器,例如导入命名空间,并使视图文件夹返回 404。
views文件夹中的
web.config
文件是做一些你想应用到view文件夹中页面的特殊设置。
像配置设置一样:连接字符串/应用程序设置等
但这将仅适用于该文件夹,项目的其余部分将从根目录中的
web.config
中获取设置。
特别是当您使用区域概念时,每个区域都会有单独的文件夹,其中包含单独的 web.cfg 文件,您可以在其中为每个区域应用单独的设置。
那是如果你想覆盖上面
web.config
中提到的东西,即如果你想自定义Views
文件夹范围内的东西。