通常の ASP.NET Web フォーム サイトでは、web.configs "appsettings" を使用してアプリケーション設定データをサイトに追加します。ただし、MVC 3 を使用している場合、この方法で設定値を取得することはできません。
まず、2 つの web.config ファイルがあります。1 つはサイトのルートにあり、2 番目は [ビュー] 領域に表示されます。appsettings 情報をルートの web.config ファイルに入れたいと思いますよね? (他のビューの下に配置すると、「AppSettings」は Web アプリケーションごとに 1 回しか表示されないというエラーが発生するようです。)
それを取得しようとすると (C#: System.Configuration.ConfigurationManager.AppSettings["SettingName"])、空白または空/null の戻り値が返されます。私は何を間違っていますか?
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"];
}
}
}