quelle est la fonction des pages Web: activé dans MVC 3 web.config

200

Je viens de commencer un nouveau projet MVC 3. Quelqu'un peut-il me dire quoi

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

dans mon fichier web.config fait?

ftnilsson
la source
1
Il serait utile de noter ce qui se passe si ce paramètre est défini et que vous essayez de parcourir un fichier .chstml. Vous obtenez l'erreur "Ce type de page n'est pas diffusé." Heures passées sur celui-ci: / stackoverflow.com/questions/12533605/…
Dave Swersky

Réponses:

239

webPages:enabledavec valeur falseempêche .cshtmlou les .vbhtmlfichiers dans le Viewsdossier d'être directement accessible depuis un navigateur Web.

Neil Knight
la source
21
En fait, cela les empêche d'accéder directement quel que soit leur lieu de résidence dans l'application. Dans le dossier des vues, à la racine, dans un dossier différent ... peu importe, vous obtenez la même erreur. The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht
5
N'est-ce pas à cela que sert la configuration "BlockViewHandler"? Quelle est la différence?
Tom Pažourek
Désolé, exécuter un projet Nancy sur Mono et ce paramètre est apparu via nuget. Je me demande donc, est-ce une chose IIS et une chose MVC 3, ou quelle partie de la pile consomme réellement ce paramètre?
Frank Schwieterman
Je ne suis pas autorisé à voir les vues par défaut, mais si j'ajoute ce paramètre et le définit sur false, elles sont maintenant analysées et tentées d'être affichées.
Brunis
WebPages: activé le permet que la valeur soit vraie ou fausse, la valeur par défaut est nulle.
Brunis
28

Selon la documentation, il empêche les fichiers .cshtml et .vbhtml d'accéder directement ( www.myweb.com/views/home/index.cshtmlpar exemple)

Lukáš Novotný
la source
1
J'ai cherché, mais je ne trouve pas de référence où cela est expliqué. J'aimerais en particulier savoir quel est l'effet d'une omission <add key="webpages:Enabled" value="???">complète. Est la valeur par défaut trueou false?
StarNamer
2
J'ai donc creusé dans le code source et la valeur par défaut est en fait null- ce qui signifie que les pages Web sont activées si l'application contient des fichiers *.cshtmlou *.vbhtml. La vérification des fichiers peut être désactivée en définissant cette valeur sur trueou false. Vous pouvez voir par vous-même ici .
Lukáš Novotný
Selon quelle documentation?
Kissaki
1

Pour permettre aux pages Razor d'être diffusées, il ne suffit pas de les définir <add key="webpages:Enabled" value="true" />. Vous devez également ajouter le package Microsoft.AspNet.WebPages à l' packages.configutilisation de NuGet.

Ron Inbar
la source