asp.net web.config appsettings多个值

时间:2011-06-29 20:19:32

标签: c# asp.net c#-4.0

我有appSetting块看起来像这样:

<appSettings>
  <key="site1" value="http://www.thissite.com,site name" />
  <key="site2" value="http://www.thissite.com,site name" />
</appSettings>

我想用值和文字填充下拉列表:

  

value =“http://www.thissite.com”text =“网站名称”

我可以使用它将它们分成单个数组:

string[] mykey = ConfigurationManager.AppSettings["site1"].Split(',');
string[] mykey = ConfigurationManager.AppSettings["site2"].Split(',');

但是,我想将它们组合成一个数组然后循环并填充代码隐藏中的下拉列表。我可以通过循环遍历单个数组来填充它,但似乎必须有更好的方法来减少代码。

谁能告诉我怎么样?


除了以下acermate433s' answer以外的所有感谢,感谢你们。

NameValueCollection appSettings = ConfigurationManager.AppSettings;
    for (int i = 0; i < appSettings.Count; i++)
    {            
        Response.Write(appSettings.GetKey(i).ToString() + "-" + appSettings[i].ToString());
    }

显然,我会做的不仅仅是展示它。

3 个答案:

答案 0 :(得分:7)

AppSettings是 NameValueCollection ,您可以使用为每个

循环遍历其所有值

答案 1 :(得分:2)

您可以通过创建自定义配置来扩展配置文件。 基本上你最终会得到:

<site name="key1">
   <address value="...1..." />
</site>

http://www.4guysfromrolla.com/articles/020707-1.aspx

或者,您可以将密钥指定为网站名称,并使用http://cephas.net/blog/2003/09/26/extending-webconfig-in-aspnet/类似的东西。

答案 2 :(得分:2)

只是提供完整的工作样本,因为这个问题不断发布

NameValueCollection appSettings = ConfigurationManager.AppSettings;

for (int i = 0; i < appSettings.Count; i++)
{
    string key = appSettings.GetKey(i);
    string value = appSettings.Get(i);  
}