web-dev-qa-db-fra.com

Que fait le fichier Web.Config dans le dossier vues d'un projet MVC

J'ai des problèmes avec le déploiement de mon application et lors du dépannage, je suis tombé sur le Web.Config fichier dans le dossier Views. Dans le but de restreindre les possibilités des sources à mon problème, j'ai essayé de découvrir le but de ce fichier ~ Web.Config` mais je ne trouve pas vraiment beaucoup d'informations.

Donc, fondamentalement, mes questions sont les suivantes:

  1. Que fait le Web.config fichier faire dans le dossier Views d'un projet MVC?
  2. Est-ce obligatoire?

Dans les formulaires Web Asp.Net, je pense que pour utiliser un fichier web.config distinct dans un dossier, ce dossier doit être défini comme un dossier virtuel dans IIS. Est-ce le cas dans MVC (c'est-à-dire que le dossier Views doit être configuré en tant que dossier virtuel)?

79
Ola Karlsson

Non, vous n'avez pas besoin de configurer un dossier virtuel en raison de ce fichier web.config supplémentaire.

Le fichier web.config existe dans les dossiers Vues pour empêcher l'accès à vos vues par tout autre moyen que votre contrôleur. Dans le modèle de conception MVC, les contrôleurs sont censés acheminer les demandes et renvoyer une vue rendue au client appelant.

En d'autres termes, votre vue sur www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx devrait pas être directement accessible.

Si vous regardez le fichier web.config, il enregistre en fait le HttpNotFoundHandler pour tous les chemins et verbes:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

Ou, dans IIS 7 il pourrait ressembler

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
76
David Fox

Il configure le compilateur pour les vues telles que l'importation d'espaces de noms et fait que le dossier des vues renvoie un 404.

7
Daniel A. White

Le fichier web.config dans le dossier des vues doit faire certains paramètres spécialisés que vous souhaitez appliquer aux pages à l'intérieur du dossier des vues.

Comme les paramètres de configuration comme: chaîne de connexion/paramètres d'application, etc.

mais cela ne sera applicable qu'à ce dossier et le reste du projet récupérera les paramètres de web.config présents à la racine.

Surtout lorsque vous utilisez le concept de zone, il y aura un dossier séparé pour chaque zone contenant un fichier web.cfg distinct où vous pourrez appliquer des paramètres distincts pour chaque zone.

7
Prajwal

C'est si vous voulez remplacer quelque chose mentionné dans le web.config Supérieur, c'est-à-dire si vous voulez personnaliser quelque chose dans la portée du dossier Views.

6
Kenan D