MVC 3 obtention de valeurs de AppSettings dans le web.config

Normal ASP.NET formulaires Web sites je voudrais utiliser le web.les configs "appsettings" pour ajouter le paramètre d'application des données à un site. Cependant, je ne suis pas en mesure de récupérer les valeurs des paramètres de cette manière lors de l'utilisation de MVC 3.

Tout d'abord, il y a 2 web.les fichiers de configuration. L'un à la racine du site, le second est répertorié dans la zone affichage. Je suppose que j'ai envie de mettre mon appsettings de l'information dans le site web racine.fichier de config, correct? (en le mettant dans l'autre, en vertu de vues semble produire un message d'erreur indiquant "AppSettings" ne peut apparaître qu'une seule fois par une application web.)

Quand j'essaie de la récupérer (C#: Système.La Configuration.ConfigurationManager.AppSettings["SettingName"]), je reçois un vide ou vide/null valeur de retour. Ce que je fais mal?

Je dois préciser que je suis actuellement à la recherche de ces informations dans un fichier de Classe sous les Modèles de zone pour définir des valeurs spécifiques à un modèle à l'aide de get; set;. Est-il possible que je ne suis pas autorisé à le faire dans les Modèles?

Dans un Contrôleur.cs:

WindowsLiveConnect.ServiceConfiguration WLSC = new WindowsLiveConnect.ServiceConfiguration();

ViewBag.ClientID = SC.ClientID; //This returns empty

Dans le web.config

...

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>

    <add key="ClientID" value="0000000040062A3F" />
    <add key="ClientSecret" value="SUPERSECRETPASSWORD" />
    <add key="RedirectURL" value="http%3A%2F%2Fwww.quilnet.com" />
  </appSettings>

...

Dans le Modèle.cs fichier:

        public class ServiceConfiguration
        {
            private string clientid;
            private string clientsecret;
            private string redirecturl;

            public string ClientID
            {

                get { return clientid; }

                set
                {
                    clientid = System.Configuration.ConfigurationManager.AppSettings["ClientID"];
                }
            }

            public string ClientSecret
            {

                get { return clientsecret; }

                set
                {
                    clientsecret = System.Configuration.ConfigurationManager.AppSettings["ClientSecret"];
                }
            }

            public string RedirectURL
            {

                get { return redirecturl; }

                set
                {
                    redirecturl = System.Configuration.ConfigurationManager.AppSettings["RedirectURL"];
                }
            }
        }
  • 1) Utiliser le web.config au niveau de la racine. 2) Votre set mise en œuvre n'est pas correct. Comme vous l'avez maintenant, votre clientid n'est pas initialisé jusqu'à ce que vous appeler explicitement ServiceConfiguration.ClientID = ... qui va ensuite lui assigner une valeur à partir de AppSettings.
InformationsquelleAutor Vinod Kumar | 2013-10-25