2009-08-31 55 views
27

有人给我发过链接下载样本标准asp.net MVC样,我注意到,有2个web.config文件中:为什么有2个web.config文件中

  1. 1根目录
  2. 1 views目录

,这是什么原因呢?

+0

另请参阅此问题[此处](http://stackoverflow.com/q/23509617)更多最新版本的MVC,相同的原理。 – StuartLC 2015-02-05 10:30:52

回答

39

在浏览目录中的web.config文件只是有一个显著项,其中块直接访问:

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

这是为了别人不能手动尝试去http://www.yoursite.com/views/main/index.aspx并加载MVC管道外的页面。

+0

@Rex到哪个文件我必须添加我的连接字符串 – 2009-12-31 03:13:01

+0

@Pandiya根web.config,没有一个在视图目录(或任何其他) – 2010-01-02 05:03:06

+1

@RexM:很好的解释。谢啦 – 2013-11-30 01:22:34

4

您可以有多个web.configs来为该文件夹定义不同的设置。用于权限和其他类似的事情。

6

/Views/Web.config

这不是你的应用程序的主 web.config文件。它只是包含了 指令指示Web服务器 不服务下 /浏览任何* .aspx文件(因为他们应该是通过控制器呈现 ,不调用 直接像传统的WebForms *的.aspx 文件)。此文件还包含配置 需要使ASP.NET标准 ASP.NET ASPX页面编译器工作 正确使用ASP.NET MVC视图 模板语法。

/Web.config

这个定义应用程序 配置。

这是从书临ASP.NET MVC框架

12

什么乌骨鸡说,除了改写。

在ASP .NET中,基本上有一个继承风格的事情正在进行配置文件。在.net框架文件夹中有一个machine.config文件,其中包含机器上所有应用程序的基本设置。您在根web.config中使用相同标记指定的任何内容都会覆盖machine.config中的内容。
子文件夹中的任何web.config都可以覆盖或添加该子文件夹及其子文件中的其他设置。

对我来说,第一次我的一个新程序员在根文件夹中放入一个http处理程序,然后虚拟目录下的所有应用程序爆炸,因为它们没有DLL(它们应该只将http处理程序语句放在需要它的应用程序中,而不是放在根中)。 :)

相关问题