Я новичок в MVC 3. В чем причина использования двух файлов web.config?
В чем разница между этими 2 файлами web.config и какова цель каждой и ее функции?
Я новичок в MVC 3. В чем причина использования двух файлов web.config?
В чем разница между этими 2 файлами web.config и какова цель каждой и ее функции?
Я хотел бы добавить к этому, что Web.Config в папке /Views - отличный (если не тот) способ объявить пространства имен, специально предназначенные для ваших просмотров. В веб-приложении очень возможно почти каждое представление получает ViewModel (вместо вашей фактической модели), переданный ему. Объявление полного пространства имен после @model или наличие того же @using App.Web.Viewmodels становится утомительным. Таким образом, все режимы просмотра автоматически доступны, и вам нужно выполнить дополнительную работу, чтобы получить реальные модели в области, которые затем должны установить некоторые будильники сразу.
Кроме того, как правило, приложение может получить множество методов расширения, специально предназначенных для использования в представлении (подсказка HTML-подсказок). Имеет смысл определить пространство имен для этого класса расширения в /Views/Web.Config. Таким образом, вы никогда не задаетесь вопросом: "Почему не удается IntelliSense найти мой метод @Html.ImageLink()?"
Это пример наследования файлов web.config
. Из MSDN
Вы можете распространять файлы конфигурации ASP.NET во всех каталогах приложений для настройки приложений ASP.NET в иерархии наследования. Эта структура позволяет вам достичь уровня детализации конфигурации, который требуется вашим приложениям на соответствующих уровнях каталогов, не влияя на настройки конфигурации на более высоких уровнях каталогов.
В частности, для проектов MVC web.config
в подкаталоге View
используется для адаптации файлов .cshtml
/.aspx
. Вы можете использовать файлы web.config
во вложенных папках для расширения, переопределения и удаления настроек, унаследованных от собственного корня приложения, и дальнейшей иерархии, например. до machine.config
Общие конфигурации в /Views/web.config
включают:
404
настроен для таких прямых запросов, например.<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
using
. Вы можете добавить пространства имен для общих пользовательских сборок здесь (например, пользовательские html-вспомогательные расширения), например. <namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
...
RequestValidation
для MVC. Комментарий, добавленный в конфигурацию, объясняет это лучше всего:<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
Файл web.config существует в папках Views, чтобы предотвратить доступ к вашим представлениям любым другим способом, кроме вашего контроллера. В шаблоне проектирования MVC контроллеры должны направлять запросы и возвращать визуализированный вид вызывающему клиенту.
означает localhost9999://Home/Index.cshtml не должен быть напрямую доступен.
У просмотра есть своя конфигурация. Если вы имеете дело с областями, тогда вы узнаете о нескольких конфигурациях.
Фактически Дело в том, что представление Web.Config предназначено для просмотра специфической конфигурации, такой как блокирование прямого доступа к представлениям
Конфигурация ASP.NET хранится в файлах web.config
(файлы XML).
Эти файлы могут отображаться во многих каталогах в приложении ASP.NET. Они помогают настроить поведение приложения еще до развертывания, основываясь на том, что вы можете редактировать их с помощью блокнота. Также они разделяют ваш код и ваши данные конфигурации.
Каждый файл web.config
применяется к существующей директории и ВСЕ дочерним подкаталогам. web.config
файлы в дочернем каталоге могут использоваться для переопределения родительского файла web.config
.
У вас есть возможность переопределить отдельные файлы или каталоги с помощью элемента location. См. ССЫЛКА
Правила наследования настроек - это как foillows.
Сначала есть файл machine.config, который обычно находится в systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\
В том же каталоге существует файл 'master' web.config, который определяет параметры для всех приложений asp.net, которые запущены на машине.
Затем введите свои файлы web.config, которые существуют в вашем приложении.
Дополнительная информация:
В дополнение к распределению ваших настроек для вашего проекта простым способом вы можете включить его во время выполнения, чтобы сделать публикацию. Одна рука на руле. См: