如何通过模型迭代到无序列表?

时间:2012-01-06 19:53:54

标签: asp.net html webformsmvp

我正在使用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中的项。

提前致谢!

2 个答案:

答案 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。