nei siti normali moduli Web ASP.NET vorrei usare web.configs "appsettings" per aggiungere dati di impostazione applicazione a un sito. Tuttavia, io non sono in grado di recuperare i valori di impostazione in questo modo quando si utilizza MVC 3.MVC 3 valori che ottengono da AppSettings in web.config
Prima di tutto, ci sono 2 file web.config. Uno nella radice del sito, il secondo è elencato nell'area Viste. Suppongo di voler inserire le informazioni delle mie app nel file web.config di root, corretto? (Mettendolo in l'altro sotto di vista sembra produrre un errore che indica "AppSettings" può apparire solo una volta per ogni applicazione Web.)
Quando provo a recuperarla (C#: System.Configuration.ConfigurationManager.AppSettings [ "SettingName" ]) Ricevo un valore di ritorno vuoto o vuoto/nullo. Che cosa sto facendo di sbagliato?
Devo dire che io sono in realtà il recupero di queste informazioni in un file di classe sotto l'area modelle per impostare valori specifici per un modello con get; impostato;. È possibile che non mi sia permesso farlo in Modelli?
In un Controller.cs:
WindowsLiveConnect.ServiceConfiguration WLSC = new WindowsLiveConnect.ServiceConfiguration();
ViewBag.ClientID = SC.ClientID; // This returns empty
Nel 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>
...
Nel file Model.cs:
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) Usare il web.config in il livello principale. 2) L'implementazione di 'set' non è corretta. Come lo avete ora, il vostro 'clientid' non viene inizializzato fino a quando si chiama in modo esplicito' ServiceConfiguration.ClientID = ... 'che poi assegnarle un valore da AppSettings. – Jasen