comment accéder aux propriétés du projet dans un .cshtml fichier de rasoir?
est-il possible d'Accéder à mon Propriétés du Projet au sein de la .cshtml fichier de Rasoir?
J'ai besoin de quelque chose comme ceci:
@if (myProject.Properties.Settings.Default.foo) {...}
alors que toto est un boolean
Je reçois le message d'erreur qu'en raison d'une des raisons de sécurité, il n'est pas possible.
- Comment sur la définition de cette propriété dans le ViewBag (dans le Contrôleur) et de l'appeler à partir de là?
- Bonne idée, vais essayer
- mais le problème, c'est que c'est ma _Layout page, où dois-je le Viewbag pour elle? Je ne vais pas définir dans chaque contrôleur que j'ai
- Utiliser un BaseController et jeu de il y, ou, comme lavrik dit, utiliser le web.config pour vos paramètres de référence et à partir de là 🙂
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas vraiment appeler
ConfigurationManager
directement à partir de votre point de vue. Les points de vue devraient être "idiot", MVC, c'est à dire ne pas avoir la moindre connaissance de la structure de données ou de back-end, et en appelantConfigurationManager
directement votre point de vue en sait trop sur la façon dont vos paramètres sont enregistrés. Si vous avez modifié vos paramètres à utiliser un autre magasin (c'est à dire une base de données) alors que vous auriez à changer votre point de vue.Donc, vous devez saisir la valeur ailleurs et de le passer à votre vue, donc votre point de vue juste prend soin de rendu et c'est tout. Probablement, vous avez 2 options:
J'avais décourager l'option 1, car en général, il est préférable d'éviter les
ViewBag
car il n'est pas fortement typé (Est l'aide de ViewBag MVC mauvais?). Aussi, pour ce faire, vous feriez soit hériter d'uneBaseController
pour chaque contrôleur, qui peut être une douleur, ou de créer une action globale filtre qui remplaceActionExecuted
et les aliments pour quelque chose dans laViewBag
là.L'Option 2 est probablement mieux. J'aimerais créer un contrôleur commun quelque chose comme:
Ensuite dans votre fichier de mise en page, vous pouvez appeler le:
Qui le rend fortement typées vue partielle (~/Views/Common/Paramètres.cshtml) qui ressemble à:
Cette façon, vous êtes toujours à l'aide d'un typage fort de modèle et de vue, votre vue de mise en page reste propre et simple, et votre vue partielle reste "idiot",
Les paramètres de l'application sont stockées dans le site web.fichier de configuration que
de sorte que vous pouvez essayer d'utiliser ConfigurationManager.AppSettings dictionnaire comme