有人通过链接发送我下载示例标准asp.net MVC示例,我注意到有2个web.config文件:
这是什么原因?
答案 0 :(得分:39)
Views目录中的web.config只有一个重要条目,它阻止了直接访问:
<add path="*" verb="*"
type="System.Web.HttpNotFoundHandler"/>
这是有人无法手动尝试转到http://www.yoursite.com/views/main/index.aspx
并在MVC管道外加载页面。
答案 1 :(得分:12)
Silky说,除了重写。
在ASP .NET中,配置文件基本上存在继承风格。你在.net framework文件夹中有一个machine.config,它对机器上的所有应用程序都有基本设置。您在具有相同标记的根web.config中指定的任何内容都将覆盖machine.config中的内容 子文件夹中的任何web.config都可以覆盖或添加该子文件夹及其子文件夹中的其他设置。
我的新程序员第一次在根文件夹中放入一个http处理程序,然后它下面的虚拟目录中的所有应用程序都爆炸,因为它们没有DLL(它们应该有将http处理程序语句仅放在需要它的应用程序中,而不是在根目录中。 :)
答案 2 :(得分:6)
/Views/Web.config
这不是您的应用程序的主要内容 web.config文件。它只包含一个 指令指示Web服务器 不要提供任何* .aspx文件 / Views(因为它们应该是 由控制器呈现,未调用 直接像经典的WebForms * .aspx 文件)。该文件还包含配置 需要制定标准 ASP.NET ASPX页面编译工作 适当的ASP.NET MVC视图 模板语法。
/Web.config
这定义了您的应用程序 配置。
这是来自Pro ASP.NET MVC Framework的书
答案 3 :(得分:4)
您可以使用多个web.configs为该文件夹定义不同的设置。用于权限和其他此类事情。