2011-06-01 12 views
69

Tengo algunos problemas con la implementación de mi aplicación y mientras solucioné 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.Qué hace el archivo Web.Config en la carpeta de vistas de un proyecto de MVC

Así que, básicamente, mis preguntas son:

  1. ¿Qué hace el archivo en la carpeta Web.configViews de un proyecto de MVC?
  2. es lo necesario?

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 debe configurarse como una carpeta virtual)?

+12

no hay preguntas "estúpidas" – contactmatt

+6

nunca tenga miedo de hacer preguntas "estúpidas". Si no sabes la respuesta, entonces no es "estúpido". Nada "estúpido" para obtener una mejor comprensión de algo. – DazManCat

+0

SO es conocido por sofocar los usuarios en el napalm por hacer preguntas ... – Pangamma

Respuesta

68

No, no es necesario configurar una carpeta virtual a causa de este archivo web.config adicional.

archivo Web.config existe en las carpetas vistas para impedir el acceso a sus puntos de vista por cualquier medio distinto de 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 debe no ser directamente accesible.

Si usted se asoma en el archivo web.config en realidad registra el HttpNotFoundHandler a todas las vías y los verbos:

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

O, en IIS 7 puede ser que parezca

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

Pero el web.config generado contiene una enorme cantidad de otro texto - eso es todo lo redundante? –

6

Se configura el compilador para los puntos de vista como la importación de espacios de nombres y hace que las vistas de carpetas devolver un 404.

5

Eso es, si desea anular algo que se menciona en la parte superior web.config, es decir, si desea personalizar algo dentro del alcance de la carpeta Views.

+0

entre otras cosas ... –

5

El archivo web.config en la carpeta de vistas es hacer algunos ajustes especializados que desea aplicar a las páginas dentro de la carpeta de vista.

Al igual que los ajustes de configuración como: Cadena de conexión/appsettings etc.

sino que será aplicable solamente a esa carpeta y resto del proyecto recogerá la configuración de web.config presente en la raíz.

Especialmente cuando se utiliza el concepto de zona habrá carpeta separada para cada área que contiene el archivo web.cfg separada donde se puede aplicar ajustes separados para cada área.

Cuestiones relacionadas