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?



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.


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)


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.