【问题标题】:asp.net web.config appsettings multiple valuesasp.net web.config appsettings 多个值
【发布时间】:2011-06-29 20:19:32
【问题描述】:

我的 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());
    }

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

【问题讨论】:

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


    【解决方案1】:

    AppSettings 是一个 NameValueCollection,您可以使用 for each

    遍历其所有值

    【讨论】:

    • 感谢这太棒了,为我节省了大量代码。我会用一个小例子来编辑我的问题。谢谢
    【解决方案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/ 之类的东西。

    【讨论】:

    • 如果您正确构建自定义配置,您也不需要解析逗号分隔的字符串。名称和 url 有单独的元素或属性
    • jglouie,你能举例说明如何设置吗
    【解决方案3】:

    只是为了提供完整的工作示例,因为这个问题不断得到点击

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-11
      • 2011-08-26
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多