как показать двух клиентов в одной строке таблицы MVC 2

#asp.net #asp.net-mvc-2

#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.есть ссылки?

Ответ №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>
  

Комментарии:

1. Спасибо, Дарин. Показывает ли это двух клиентов / строку таблицы. Только один

2. @user594166, строк будет столько, сколько объектов в модели представления (в этом примере это массив клиентов).

3. @user594166, ну, в этом случае вы могли бы адаптировать свою модель представления так, чтобы она больше не представляла массив клиентов, а массив другой модели представления, которая содержит 2 клиентов.