Подтвердить что ты не робот

Что делает файл Web.Config в папке представлений проекта MVC

У меня возникли проблемы с развертыванием моего приложения и при устранении неполадок я наткнулся на Web.Config файл в папке Views. В попытке сузить возможности источников к моей проблеме я попытался выяснить цель этого файла Web.Config, но не могу найти много информации.

Итак, в основном мои вопросы:

  • Что делает файл Web.Config в папке Views проекта MVC?
  • Требуется ли?

В веб-формах Asp.Net я считаю, что для использования отдельного файла web.config в папке эта папка должна быть установлена ​​как виртуальная папка в IIS. Это в случае MVC (т.е. Папка Views должна быть настроена как виртуальная папка)?

4b9b3361

Ответ 1

Нет, вам не нужно настраивать виртуальную папку из-за этого дополнительного файла 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"/>

Ответ 2

Он настраивает компилятор для представлений, таких как импорт пространств имен и делает папку представлений возвращением 404.

Ответ 3

Это, если вы хотите переопределить что-то, упомянутое в верхнем web.config, т.е. если вы хотите настроить что-то в области Views.

Ответ 4

Файл web.config в папке представлений должен сделать некоторые специализированные параметры, которые вы хотите применить к страницам внутри папки просмотра.

Подобно настройкам конфигурации, например: строка подключения/настройки и т.д.

но это будет применимо только к этой папке, и остальная часть проекта заберет настройки из web.config, присутствующие в корне.

В частности, при использовании концепции области будет отдельная папка для каждой области, содержащей отдельный файл web.cfg, где вы можете применять отдельные настройки для каждой области.