Вопрос по razor, asp.net-mvc-4, render, ado.net-entity-data-model, c# – Как отобразить коллекцию в представлении проекта ASP.NET MVC 4 Razor?

10

У меня есть следующая модель:

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 используя мою модель?

Спасибо!

Да, проставьте над списком <ContractPlain> и отобразите каждый контракт. Sam Leach

Ваш Ответ

2   ответа
11

те Контракты.

контроллер:

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>

Razor:

@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>
Это не Razor, но может быть легко адаптировано ... Sam Leach
Ваш код приемлем для ASP.NET MVC 4 Razor? user2402179
5

Если ваше действие возвращает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>
}

Похожие вопросы