在正常的ASP.NET Web表单网站中,我将使用web.configs“appsettings”将应用程序设置数据添加到网站。但是,当使用MVC 3时,我无法以这种方式检索设置值。MVC 3从web.config中的AppSettings获取值
首先,有2个web.config文件。一个在网站的根目录中,第二个在“视图”区域中列出。我假设我想将我的appsettings信息放在根web.config文件中,对吗? (把它放在另一个视图下似乎产生一个错误,说明“AppSettings”只能出现一次每个Web应用程序。)
当我尝试检索它(C#:System.Configuration.ConfigurationManager.AppSettings [“SettingName” ])我得到一个空白或空/空返回值。我究竟做错了什么?
我应该提到,我实际上是在Model区域下的Class文件中检索这些信息,以便使用get为模型设置特定的值;组;。有可能我不允许在模型中做到这一点?
在Controller.cs:
WindowsLiveConnect.ServiceConfiguration WLSC = new WindowsLiveConnect.ServiceConfiguration();
ViewBag.ClientID = SC.ClientID; // This returns empty
在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>
...
在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)使用在web.config中根级。 2)你的'set'实现不正确。就像你现在所做的那样,你的'clientid'不会被初始化,直到你明确地调用'ServiceConfiguration.ClientID = ...',然后它会从AppSettings中为它分配一个值。 – Jasen