#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 клиентов.