Web.Config文件在MVC项目的views文件夹中执行什么操作

时间:2011-06-01 16:14:14

标签: asp.net-mvc web-config

我在部署应用程序时遇到一些问题,在进行故障排除时,我遇到了Web.Config文件夹中的Views文件。为了缩小我的问题的来源的可能性,我试图找出~Web.Config`文件的目的,但实际上找不到太多的信息。

基本上我的问题是:

  1. Web.config文件在MVC项目的Views文件夹中做了什么?
  2. 是否需要?
  3. 在Asp.Net webforms中,我认为要在文件夹中使用单独的web.config文件,该文件夹必须在IIS中设置为虚拟文件夹。这是MVC中的情况(即Views文件夹是否需要配置为虚拟文件夹)?

4 个答案:

答案 0 :(得分:75)

不,由于这个额外的web.config文件,您不需要配置虚拟文件夹。

“视图”文件夹中存在web.config文件,以防止通过控制器以外的任何方式访问您的视图。在MVC设计模式中,控制器应该路由请求并将呈现的视图返回给调用客户端。

换句话说,您在www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx上的观点应该可以直接访问。

如果您查看web.config文件,它实际上会将HttpNotFoundHandler注册到所有路径和动词:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

或者,在IIS 7中,它可能看起来像

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

答案 1 :(得分:7)

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

答案 2 :(得分:7)

views文件夹中的web.config文件用于执行一些您想要应用于视图文件夹内页面的专门设置。

像配置设置一样:连接字符串/ appsettings等。

但这仅适用于该文件夹,项目的其余部分将从根目录中的web.config中获取设置。

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

答案 3 :(得分:6)

如果您想覆盖上部web.config中提到的内容,即如果您想要自定义Views文件夹范围内的内容,那就是这样。