2009-08-31 27 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處理程序語句放在需要它的應用程序中,而不是放在根中)。 :)

相關問題