1. ホーム
  2. asp.net-mvc

[解決済み] MVCプロジェクトのviewsフォルダーにあるWeb.Configファイルの役割

2023-03-28 19:48:24

質問

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

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

  1. はどのようなものですか? Web.config ファイルでは Views フォルダーに保存されますか?
  2. それは必須ですか?

Asp.Net webforms では、フォルダにある別の web.config ファイルを使用するには、そのフォルダを IIS の仮想フォルダとして設定する必要があると思います。これは MVC でも同じなのでしょうか (つまり Views フォルダを仮想フォルダとして設定する必要があります)?

どのように解決するのですか?

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

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

言い換えると、www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx のビューは次のようになっていなければなりません。 ではなく には直接アクセスできないのです。

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

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

あるいは、IIS 7 では次のようになります。

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