asp.net mvc - tutorial - Qué hace el archivo Web.Config en la carpeta views de un proyecto MVC
web forms c# ejemplos (4)
Tengo algunos problemas con la implementación de mi aplicación y, durante la resolución de problemas, encontré el archivo Web.Config
en la carpeta Views
. En un intento de reducir las posibilidades de las fuentes para mi problema, traté de averiguar el propósito de ese ~ archivo Web.Config` pero realmente no puedo encontrar mucha información.
Entonces, básicamente, mis preguntas son:
- ¿Qué hace el archivo
Web.config
en la carpetaViews
de un proyecto MVC? - ¿Es requerido?
En los formularios web Asp.Net, creo que para usar un archivo web.config por separado en una carpeta, esa carpeta debe configurarse como una carpeta virtual en IIS. ¿Es este el caso en MVC (es decir, la carpeta Views
necesita configurarse como una carpeta virtual)?
Configura el compilador para las vistas como la importación de espacios de nombres y hace que la carpeta de vistas devuelva un 404.
El archivo web.config en la carpeta de vistas es para hacer algunas configuraciones especializadas que desea aplicar a páginas dentro de la carpeta de vista.
Como configuraciones de configuración como: cadena de conexión / aplicaciones, etc.
pero eso solo se aplicará a esa carpeta y el resto del proyecto recuperará la configuración de web.config presente en la raíz.
Especialmente cuando usa el concepto de área, habrá una carpeta separada para cada área que contenga un archivo web.cfg separado donde puede aplicar configuraciones separadas para cada área.
Eso es si desea anular algo mencionado en la parte superior web.config
, es decir, si desea personalizar algo dentro del alcance de la carpeta Views
.
No, no necesita configurar una carpeta virtual debido a este archivo web.config adicional.
El archivo web.config existe en las carpetas Vistas para evitar el acceso a sus vistas por cualquier medio que no sea su controlador. En el patrón de diseño de MVC, los controladores deben enrutar las solicitudes y devolver una vista representada al cliente que realiza la llamada.
En otras palabras, su vista en www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx no debe ser accesible directamente.
Si HttpNotFoundHandler
vistazo al archivo web.config, en realidad registra HttpNotFoundHandler
en todos los caminos y verbos:
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
O bien, en IIS 7 podría parecerse
<add name="BlockViewHandler" path="*.aspx" verb="*"
preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>