MVC项目的views文件夹中的Web.Config文件是做什么的

问题描述 投票:0回答:4

我在部署我的应用程序时遇到了一些问题,在进行故障排除时,我在

Web.Config
文件夹中发现了
Views
文件。为了缩小问题来源的可能性,我试图找出该
Web.Config
文件的用途,但找不到太多信息。

所以基本上我的问题是:

  1. MVC项目的
    Web.config
    文件夹中的
    Views
    文件有什么作用?
  2. 需要吗?

在 ASP.NET webforms 中,我认为要在文件夹中使用单独的

web.config
文件,该文件夹必须在 IIS 中设置为虚拟文件夹。 MVC 中是否属于这种情况(即
Views
文件夹是否需要配置为虚拟文件夹)?

asp.net-mvc web-config
4个回答
82
投票

不,因为这个额外的

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"/>

8
投票

它为视图配置编译器,例如导入命名空间,并使视图文件夹返回 404。


7
投票

views文件夹中的

web.config
文件是做一些你想应用到view文件夹中页面的特殊设置。

像配置设置一样:连接字符串/应用程序设置等

但这将仅适用于该文件夹,项目的其余部分将从根目录中的

web.config
中获取设置。

特别是当您使用区域概念时,每个区域都会有单独的文件夹,其中包含单独的 web.cfg 文件,您可以在其中为每个区域应用单独的设置。


6
投票

那是如果你想覆盖上面

web.config
中提到的东西,即如果你想自定义
Views
文件夹范围内的东西。

© www.soinside.com 2019 - 2024. All rights reserved.