2

我有一个 ASP:Repeater,我需要使用一个使用 ASP.NET 视图引擎的 foreach 循环

但是我遇到了一个问题。

这是中继器内的代码:

           <%# cart = (CartDTO)Container.DataItem %>

                      <% foreach (var item in cart.Products)
                       { %> 
                        <p><%= item.Title %></p>
                      <% }%>

这里的问题是没有渲染出来。我发现了这个问题。我必须使用它<%#来代替<%=它。但问题是 <%# 在 ASP:Repeater 中不起作用。项目变为“无法解析“项目”符号。

有什么解决方案吗?

4

1 回答 1

4

我认为中继器不会轻易理解项目模板中的此类片段。一般来说,ASP.NET 页面标记中的 C# 代码不应用于比“将此值输出到页面”更复杂的事情。

您最好为此类任务创建一个嵌套中继器:

<asp:Repeater runat="server" DataSource='<%# ((CartDTO)Container.DataItem).Products %>'>
    <ItemTemplate>
        <p> <%# Eval("Title") %></p>
    </ITemTemplate>
</asp:Repeater>
于 2014-05-26T11:48:46.040 回答