Как отобразить коллекцию в представлении проекта ASP.NET MVC 4 Razor?
У меня есть следующая модель:
public class ContractPlain
{
public int Id { get; set; }
public Guid ContractGuid { get; set; }
public int SenderId { get; set; }
public int RecvId { get; set; }
public int ContractType { get; set; }
public string ContractStatus { get; set; }
public DateTime CreatedTime { get; set; }
public DateTime CreditEnd { get; set; }
}
public class Contrtacts
{
List<ContractPlain> listOutput;
public void Build(List<ContractPlain> listInput)
{
listOutput = new List<ContractPlain>();
}
public List<ContractPlain> GetContracts()
{
return listOutput;
}
internal void Build(List<contract> currentContracts)
{
throw new NotImplementedException();
}
}
Как вы можете видеть, я определил целую коллекцию.
Почему?
Мне нужно отобразить данные в таблице для пользователя, потому что есть несколько строк, принадлежащих точному/уникальному пользователю (например, 20-30 предметов магазина относятся к одному клиенту).
Итак, я получаю данные из БД с помощью ADO.NET Entity. Связанный вопрос с экземпляром модели в Controller
выполняется, и у меня нет проблем с этим, я делаю только с вопросом рендеринга.
Я думаю, он может быть использован с материалом @for
, но не знал, как лучше было бы использовать особенно мою пользовательскую модель.
Итак, как я могу визуализировать данные в View
с помощью моей модели?
Спасибо!
Ответы
Ответ 1
См. представление ниже. Вы просто просматриваете свою коллекцию и показываете Контракты.
Контроллер:
public class ContactsController : Controller
{
public ActionResult Index()
{
var model = // your model
return View(model);
}
}
Вид:
<table class="grid">
<tr>
<th>Foo</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td class="left"><%: item.Foo %></td>
</tr>
<% } %>
</table>
Бритва:
@model IEnumerable<ContractPlain>
<table class="grid">
<tr>
<th>Foo</th>
</tr>
@foreach (var item in Model) {
<tr>
<td class="left"><@item.Foo></td>
</tr>
@}
</table>
Ответ 2
Если ваше действие возвращает List
контрактов, вы можете сделать следующее в представлении:
@model IEnumerable<ContractPlain>
@foreach(ContractPlain contract in Model)
{
<ul>
<li>@contract.ContractGuid</li>
<li>@contract.SenderId</li>
<li>@contract.ContractStatus</li>
<li>@contract.CreditEnd</li>
</ul>
}