MVCプロジェクトのviewsフォルダーでWeb.Configファイルは何をしますか


85

アプリケーションのデプロイで問題が発生しWeb.ConfigましたViews。トラブルシューティング中に、フォルダー内のファイルに遭遇しました。ソースの可能性を自分の問題に絞り込むために、その〜Web.Config`ファイルの目的を見つけようとしましたが、実際には多くの情報を見つけることができません。

つまり、基本的に私の質問は次のとおりです。

  1. Web.configファイルはViewsMVCプロジェクトのフォルダーで何をしますか?
  2. 必要ですか?

Asp.Net Webフォームでは、フォルダー内で別のweb.configファイルを使用するには、そのフォルダーをIISで仮想フォルダーとして設定する必要があると思います。これはMVCの場合ですか(つまり、Viewsフォルダーを仮想フォルダーとして構成する必要がありますか)?


15
「ばかげた」質問はありません
contactmatt 2012

8
「愚かな」質問をすることを恐れないでください。あなたが答えを知らないなら、それは「愚か」ではありません。何かをよりよく理解することについて「愚かな」ことは何もありません。
dazManCat 2013

4
SOは、質問をするためにナパーム弾のユーザーをだましていることで知られています...
Pangamma 2017年

回答:


79

いいえ、この余分なweb.configファイルがあるため、仮想フォルダーを構成する必要はありません。

web.configファイルはViewsフォルダーに存在し、コントローラー以外の方法でビューにアクセスできないようにします。MVCデザインパターンでは、コントローラーは要求をルーティングし、レンダリングされたビューを呼び出し元のクライアントに返すことになっています。

つまり、www.mydomain.com / MySuperController / AwesomeAction1 /SweetPage.aspxのビューに直接アクセスできないようにする必要あります。

web.configファイルを覗くと、実際HttpNotFoundHandlerにはすべてのパスと動詞にが登録されます。

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

または、IIS7では次のようになります。

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

21
しかし、生成されたweb.configには、他の大量のテキストが含まれています-それはすべて冗長ですか?
Eamon Nerbonne 2014


7

viewsフォルダー内のweb.configファイルは、viewフォルダー内のページに適用するいくつかの特殊な設定を行うためのものです。

接続文字列/アプリ設定などの設定設定のように。

ただし、これはそのフォルダーにのみ適用され、プロジェクトの残りの部分はルートにあるweb.configから設定を取得します。

特に、エリアの概念を使用する場合、エリアごとに個別の設定を適用できる個別のweb.cfgファイルを含む個別のフォルダーがあります。


6

これは、上部web.configに記載されているものを上書きする場合、つまり、Viewsフォルダーのスコープ内で何かをカスタマイズする場合です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.