如何循环 web.config 部分并在 aspx 页面中呈现为 HTML?

How can I loop a web.config section and render to HTML in aspx page?

在web.config中说,我有

<configSections>
    <section name="myOptions" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<myOptions>
    <add key="myKey1" value="myValue1">
    <add key="myKey2" value="myValue2">
    ...
</myOptions>

我想遍历 myOptions 并使用 keyvalue 字段呈现为 HTML。

<select>
    <option value="myKey1">myValue1</option>
    <option value="myKey2">myValue2</option>
    ...
</select>

从谷歌搜索,我试过了

<% var optionValuePairs = (NameValueCollection)System.Configuration.ConfigurationManager.GetSection("fundGroupOptions"); %>
<% foreach(string key in optionValuePairs) { %>
   <option value="<% key.ToString(); %>"><% optionValuePairs[key].ToString(); %></option>
<% }; %>

我可以很好地访问该集合。但是我的 option value="" 是空白的, option 文本也是空白的。

明白了...我希望这可以帮助人们节省谷歌搜索时间。 Web.Config需要按照上面的格式设置。

那么您只需要以简单的方式访问该部分 NameValueCollection。然后您可以使用 foreach 来渲染您的 HTML.

<% var optionValuePairs = (NameValueCollection)System.Configuration.ConfigurationManager.GetSection("myOptions"); %>
<% foreach(string key in optionValuePairs) { %>
    <option value="<% =key %>"><% =optionValuePairs[key] %></option>
<% }; %>