デフォルトの MVC 5 プロジェクトのソースを調査していたところ、2 つの Web.Config ファイルが作成されていることがわかりました。1 つはプロジェクトのルートにあり、もう 1 つはビューのルートにあります。なぜ2つあるのですか?
2 に答える
コントローラー以外の方法でビューにアクセスできないようにするために、web.config ファイルが Views フォルダーに存在します。MVC デザイン パターンでは、コントローラーは要求をルーティングし、レンダリングされたビューを呼び出し元のクライアントに返すことになっています。つまり、www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx のビューに直接アクセスできないようにする必要があります。
IIS のすべての構成ファイルは階層化されています。必要に応じて、すべてのディレクトリに 1 つ持つことができ、各下位レベルの構成が上位レベルの構成をオーバーライドします。
マシンレベルの構成には、各セクションの意味と、web.config
それらのセクションが表示されるファイルの定義があり、各レベルで変更できる設定のかなり複雑なシステムを構築します。たとえば、IIS 7 での構成ファイルの操作に関するこの記事、特に構成レベルのセクションを参照してください。
MVC アプリケーションの場合、最上位の構成ファイルは、プロジェクト全体に適用される Web サーバーと Web アプリケーションの設定を定義します。フォルダーにある web.config ファイルはViews
、必要に応じてこれらの設定をオーバーライドし、プロジェクト内の実際の Razor ビューにのみ適用される追加の設定を追加しApp_Data
ますGlobal.asax
。たとえば、ビューの web.config は、MVC 名前空間の XML タグを追加する追加のアセンブリ参照を追加します。これは、HTML ページのコンテキストでのみ意味があります。
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />