qual è la funzione delle pagine Web: abilitata in MVC 3 web.config


200

Ho appena iniziato un nuovo progetto MVC 3. Qualcuno può dirmi cosa

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

nel mio file web.config fa?



1
Sarebbe utile annotare cosa succede se questo è impostato e si tenta di sfogliare un file .chstml. Viene visualizzato l'errore "Questo tipo di pagina non viene pubblicato." Ho trascorso ore su questo: / stackoverflow.com/questions/12533605/…
Dave Swersky,

Risposte:


239

webPages:enabledcon valore falseimpedisce .cshtmlo .vbhtmlfile nella Viewscartella da essere direttamente accessibile da un browser web.


21
In realtà impedisce loro di accedere direttamente indipendentemente da dove risiedono nell'applicazione. Nella cartella delle viste, nella radice, in una cartella diversa ... non importa che si ottenga lo stesso errore. The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht,

5
Non è a questo che serve la configurazione "BlockViewHandler"? Qual è la differenza?
Tom Pažourek,

Siamo spiacenti, eseguendo un progetto Nancy su Mono e questa impostazione è apparsa tramite nuget. Quindi mi chiedo, è una cosa IIS, e MVC 3, o quale parte dello stack consuma effettivamente questa impostazione?
Frank Schwieterman,

Non sono autorizzato a visualizzare Views per impostazione predefinita, ma se aggiungo questa impostazione e la imposto su false, ora vengono analizzati e tentato di essere visualizzati.
Brunis,

Pagine Web: Abilitato abilita se il valore è vero o falso, il valore predefinito è null.
Brunis,

28

Secondo la documentazione impedisce di accedere direttamente ai file .cshtml e .vbhtml ( www.myweb.com/views/home/index.cshtmlad esempio)


1
Ho cercato, ma non riesco a trovare un riferimento in cui questo è spiegato. Quello che mi piacerebbe in particolare sapere è qual è l'effetto di omettere del <add key="webpages:Enabled" value="???">tutto. L'impostazione predefinita è trueo false?
StarNamer,

2
Quindi ho scavato nel codice sorgente e il valore predefinito è in realtà null- il che significa che le pagine Web sono abilitate se l'applicazione contiene qualcuno *.cshtmlo *.vbhtmlfile. Il controllo dei file può essere disabilitato impostando questo valore su trueo false. Puoi vedere di persona qui .
Lukáš Novotný,

Secondo quale documentazione?
Kissaki,

1

Per consentire la pubblicazione delle pagine Razor, non è sufficiente impostarle <add key="webpages:Enabled" value="true" />. È inoltre necessario aggiungere il pacchetto Microsoft.AspNet.WebPages packages.configall'utilizzo di NuGet.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.