C# 嵌入式for loop can';不要访问变量
我的代码存在嵌入式for循环无法访问变量的问题。我用的是C#。代码如下:C# 嵌入式for loop can';不要访问变量,c#,asp.net,for-loop,C#,Asp.net,For Loop,我的代码存在嵌入式for循环无法访问变量的问题。我用的是C#。代码如下: <% List<ProductPacking> categoryList = new List<ProductPacking>(); categoryList = packBLL.getAllCategory(); foreach(ProductPacking cl in categoryList) { %>
<% List<ProductPacking> categoryList = new List<ProductPacking>();
categoryList = packBLL.getAllCategory();
foreach(ProductPacking cl in categoryList) { %>
<!-- FIRST COLLAPSIBLE PANEL EXTENDER -->
<asp:Panel ID="pHeader1" runat="server" CssClass="cpHeader">
<!-- First collapsible panel extender header -->
<div class="form-group" style="background-color: #ffb848; height: 30px; vertical-align: middle">
<div class="col-md-3">
<div style="float: left; color: White; padding: 5px 5px 0 0">
<%= cl.categoryName; %>
</div>
但是,在这一行:
,它告诉我cl这个名称在当前上下文中不存在。我想知道为什么会这样。我认为关闭标记的方式是,在本例中,在要渲染的元素之前,每个元素都要结束,尝试在html末尾关闭该标记以显示,同时避免使用asp标记
试试像这样的东西
<%
StringBuilder sb = new StringBuilder();
List<ProductPacking> categoryList = new List<ProductPacking>();
categoryList = packBLL.getAllCategory();
foreach(ProductPacking cl in categoryList) {
sb.AppendFormat("<div>{0}</div>",cl.categoryName);
//some more html here
}
response.write(sb.ToString());
%>
但我更喜欢使用网格或其他类似控件并自定义行模板,以使我的生活更轻松我认为内联ASP代码的范围非常有限。此外,这看起来可能是一个ASP中继器的好例子:我想我将使用中继器和可折叠面板扩展器来实现这一点。谢谢你的努力。