2011-02-03 2 views
189

comenzó un nuevo proyecto MVC 3. ¿Puede alguien decirme quécuál es la función de las páginas web: Habilitado en MVC 3 web.config

<add key="webpages:Enabled" value="false" /> 

en mi archivo web.config lo hace?

¡Gracias a todos!

+4

http://blogs.msdn.com/b/marcinon/archive/2011/01/13/mvc-3-project-upgrade-tool.aspx – Lazarus

+0

Sería útil observar lo que sucede si esto está configurado y intenta navegar un archivo .chstml. Obtiene el error "Este tipo de página no se sirve". Pasé horas en este:/http://stackoverflow.com/questions/12533605/iis-express-webmatrix-2-wont-serve-cshtml-files-in-webapi-project-vs10-winx/12535137#12535137 –

Respuesta

228

webPages:enabled con valor false impide .cshtml o .vbhtml archivos de la carpeta Views de ser directamente accesible desde un navegador web.

+20

En realidad, les impide acceder directamente independientemente de dónde residan en la aplicación. En la carpeta de vistas, en la raíz, en una carpeta diferente ... no importa que obtenga el mismo error. 'El tipo de página que ha solicitado no se sirve porque ha sido explícitamente prohibido' –

+5

¿No es eso para lo que es la configuración de" BlockViewHandler "? ¿Cuál es la diferencia? –

+0

Lo sentimos, ejecutando un proyecto de Nancy en Mono y esta configuración apareció a través de nuget. Entonces me pregunto, ¿esto es algo de IIS, y cosa de MVC 3, o qué parte de la pila realmente consume esta configuración? –

28

De acuerdo con la documentación que impide .cshtml y archivos .vbhtml que se acceda directamente (www.myweb.com/views/home/index.cshtml por ejemplo)

+1

I He estado buscando, pero no puedo encontrar una referencia donde se explica esto. Lo que específicamente me gustaría saber es cuál es el efecto de omitir '' completamente. ¿El valor predeterminado es "verdadero" o "falso"? – StarNamer

+1

Así que he buscado el código fuente y el valor predeterminado es 'null', lo que significa que las páginas web están habilitadas si la aplicación contiene archivos' * .cshtml' o '* .vbhtml'. La comprobación de archivos puede desactivarse estableciendo este valor en 'true' o' false'. Puede verlo usted mismo [aquí] (https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.WebPages.Deployment/WebPagesDeployment.cs). –

1

Para permitir que se sirvan páginas Razor, no es suficiente establecer <add key="webpages:Enabled" value="true" />. También necesita agregar el paquete Microsoft.AspNet.WebPages al packages.config usando NuGet.

Cuestiones relacionadas