我正在使用UI模式框架。框架允许我在客户端(类似于MVC)<%# Model.Widget %>
中以模型的形式访问数据。我使用Eval语句绑定到FormView控件。试图找出如何通过模型中的集合迭代到无序列表。
如果widget的某个属性是字符串数组,我如何通过该属性为窗口小部件项进行迭代?这是我到目前为止所得到的:
<ul style="list-style-type: none; margin-left: 0px">
<% var services = Eval("Services") as List<string>; // Getting exception here
foreach (var service in services)
{ %>
<li><%= service %></li>
<% } %>
</ul>
显然,这是错误的。我得到一个InvalidOperationException,因为我使用Eval数据绑定到变量而不是控件的ItemTemplate中的项。
提前致谢!
答案 0 :(得分:0)
几个月前我只尝试过WebformsMVP,但据我记忆中的其他内容
foreach (var service in Model.Services)
应该有效。我认为你不需要这里的Eval功能。
答案 1 :(得分:0)
以下是使用Repeater Control实现的方法。
<ul>
<asp:Repeater ID="rptServices" runat="server"
DataSource='<%# Eval("Services") %>'>
<ItemTemplate>
<li><%# Container.DataItem %></li>
</ItemTemplate>
</asp:Repeater>
</ul>
使用绑定控件的Eval方法将属性指定为DataSource。然后将Repeater的DataItem分配给ItemTemplate中的ListItem。