qual é a função das páginas da web: Ativado no MVC 3 web.config

200

Acabei de iniciar um novo projeto MVC 3. Alguém pode me dizer o que

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

no meu arquivo web.config faz?

ftnilsson
fonte
1
Seria útil observar o que acontece se isso estiver definido e você tentar procurar um arquivo .chstml. Você recebe o erro "Este tipo de página não é exibido". Passei horas neste: / stackoverflow.com/questions/12533605/…
Dave Swersky

Respostas:

239

webPages:enabledcom valor falseprevine .cshtmlou .vbhtmlarquivos na Viewspasta de estar acessível directamente a partir de um navegador web.

Neil Knight
fonte
21
Na verdade, impede que eles acessem diretamente, independentemente de onde residam no aplicativo. Na pasta views, na raiz, em uma pasta diferente ... não importa se você receber o mesmo erro. The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht
5
Não é para isso que serve a configuração "BlockViewHandler"? Qual é a diferença?
21414 Tom Tomžezrerek
Desculpe, executando um projeto de Nancy no Mono e essa configuração apareceu via nuget. Então, eu me pergunto, isso é algo do IIS e do MVC 3, ou qual parte da pilha realmente consome essa configuração?
Frank Schwieterman
Não tenho permissão para ver as Visualizações por padrão, mas se eu adicionar essa configuração e configurá-la como false, elas agora serão analisadas e tentarão ser exibidas.
Brunis
Páginas da Web: Ativadas permite se o valor é verdadeiro ou falso, o valor padrão é nulo.
Brunis
28

De acordo com a documentação, impede que os arquivos .cshtml e .vbhtml sejam acessados ​​diretamente ( www.myweb.com/views/home/index.cshtmlpor exemplo)

Lukáš Novotný
fonte
1
Estive pesquisando, mas não consigo encontrar uma referência onde isso é explicado. O que eu gostaria especificamente de saber é qual é o efeito de omitir <add key="webpages:Enabled" value="???">completamente. É o padrão trueou false?
11114 StarNamer
2
Então, eu procurei o código-fonte e o valor padrão é realmente null- o que significa que as páginas da Web são ativadas se o aplicativo contiver algum arquivo *.cshtmlou *.vbhtml. A verificação de arquivos pode ser desativada definindo esse valor como trueou false. Você pode ver por si mesmo aqui .
Novukki
De acordo com qual documentação?
Kissaki
1

Para permitir que as páginas do Razor sejam veiculadas, não basta definir <add key="webpages:Enabled" value="true" />. Você também precisa adicionar o pacote Microsoft.AspNet.WebPages ao packages.configuso do NuGet.

Ron Inbar
fonte