如何在一个表行MVC 2中显示两个客户

时间:2011-09-30 10:26:27

标签: asp.net asp.net-mvc-2

使用asp.net,我已经使用ListView向每行显示两个客户:

  <asp:ListView ID="CustListView" runat="server" 
                                GroupItemCount="2"  cellpadding="0" cellspacing="0"  style="border-collapse: collapse;border-color:#111111;width:100%;" >

                                <LayoutTemplate>
                                    <table>
                                        <tr>
                                          <td>
                                            <table cellpadding="0" cellspacing="5" >
                                                <asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder>
                                            </table>
                                          </td>
                                        </tr>
                                   </table>
                               </LayoutTemplate>

                               <GroupTemplate>
                               <tr>
                                <asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
                               </tr>
                               </GroupTemplate>

                               <ItemTemplate>
                                  <%#Eval("Customer.Name")%>

                               <ItemTemplate> 
               </ListView/>

我怎样才能在mvc 2.any links中做到这一点?

1 个答案:

答案 0 :(得分:1)

在ASP.NET MVC中,首先要忘记您可能使用的任何WebForms控件。像ListView这样的事情是无关紧要的。在ASP.NET MVC中,您使用模型,控制器和视图。因此,您可以从定义视图模型开始:

public class CustomerViewModel
{
    public string Name { get; set; }
}

你的控制器应该填写:

public ActionResult Index()
{
    var model = new[]
    {
        new CustomerViewModel { Name = "John" },
        new CustomerViewModel { Name = "Peter" },
        new CustomerViewModel { Name = "Mary" },
    };
    return View(model);
}

最后你有一个强烈输入CustomerViewModel[]的视图,你可以在其中生成一个表:

<table>
    <thead>
        <tr>
            <th>Name</th>
        </tr>
    </thead>
    <tbody>
        <% for (var i = 0; i < Model.Length; i++) { %>
            <tr>
                <td><%= Html.DisplayFor(x => x[i].Name) %></td>
            </tr>
        <% } %>
    </tbody>
</table>