Accéder à la valeur de clé à partir de Web.config dans Razor View-MVC3 ASP.NET

188

Comment accéder à une valeur de clé à partir de web.config dans ma vue Razor.

C'est dans mon web.configdans le niveau racine du projet Web.

 <appSettings>
   <add key="myKey" value="MyValue"/>
</appSettings>

Je souhaite utiliser la clé dans ma vue Razor.

Merci.

Hari Gillala
la source
10
@sathish Kumar: Je pensais que c'était un peu différent dans MVC, alors j'ai dû demander ici, donc c'est la pire question que vous avez votée contre. N'oubliez pas que vous avez également commencé votre carrière en tant que débutant, soyez poli et respectez les autres. Je n'ai pas trouvé ce genre de question dans la recherche Google .. Le rasoir est nouveau ..
Hari Gillala
1
Désolé à ce sujet.Selon la FAQ stackoverflow, je l'ai fait.
sathishkumar

Réponses:

247
@System.Configuration.ConfigurationManager.AppSettings["myKey"]
Anwar
la source
Jetez un œil à la réponse de Peter, car dans celui-ci, vous devez ajouter la référence ConfigurationManager
sensei
243

La méthode préférée est en fait:

@System.Web.Configuration.WebConfigurationManager.AppSettings["myKey"]

Il n'a pas non plus besoin d'une référence à l'assembly ConfigurationManager, il est déjà dans System.Web.

Peter J
la source
5
Quelle est la différence entre la réponse de @ Anwar et la vôtre? Outre la dénomination;)
Nate-Wilkins
22
System.Configuration peut devoir être référencé séparément s'il n'est pas utilisé ailleurs dans votre projet, mais System.Web est déjà référencé dans un projet MVC.
Peter J du
13

Voici un exemple concret de l'utilisation d'actifs non minifiés ou minifiés dans votre mise en page.

Web.Config

<appSettings>

   <add key="Environment" value="Dev" />

 </appSettings>

Razor Template - utilisez cette variable ci-dessus comme ceci:

@if (System.Configuration.ConfigurationManager.AppSettings["Environment"] == "Dev")
{    
    <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/styles/theme.css" )">    

}else{        

   <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/styles/blue_theme.min.css" )">    

}
Peter Drinnan
la source
5
Même si c'est bien avec des exemples réels, utiliser la minification de cette façon avec .net MVC est dommage. Jetez un œil à bundling asp.net/mvc/overview/performance/bundling-and-minification
Crypth
J'ai utilisé votre exemple et cela a fonctionné @Peter
Deep Roy
1

POUR MVC

- CODE WEB.CONFIG DANS LES PARAMÈTRES DE L'APPLICATION - <add key="PhaseLevel" value="1" />

- ON VIEWS suppose que vous voulez afficher ou masquer quelque chose en fonction de la valeur web.config -

- ÉCRIVEZ CECI EN HAUT DE VOTRE PAGE - @{ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString(); }

- UTILISEZ LA VALEUR SUPÉRIEURE LÀ O VOUS VOULEZ MONTRER OU CACHER.

@if (phase != "1") { @Html.Partial("~/Views/Shared/_LeftSideBarPartial.cshtml") }

raj joshi
la source