嵌入式for循环无法访问变量

时间:2013-12-27 15:49:51

标签: c# asp.net for-loop

我的代码有嵌入式for循环无法访问变量的问题。我正在使用C#。这是代码:

<%  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.categoryName; %>,它告诉我cl在当前上下文中不存在。我想知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下关闭标记的方式是在要渲染的元素之前的每个结尾,尝试在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());
%>

但我更喜欢使用网格或其他类似控件并自定义行模板以使我的生活更轻松