如何在ASP.NET MVC 4 Razor项目中显示集合?

10 c# render ado.net-entity-data-model razor asp.net-mvc-4

我有以下型号:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我定义了整个集合.

为什么?

我需要在表中为用户呈现数据,因为有几行属于完全/唯一用户(例如,20-30个商店项目被称为单个客户端).

所以,我使用ADO.NET Entity从数据库中获取数据.对模型实例的绑定问题Controller已经完成,我没有遇到任何问题,我只处理渲染问题.

我认为,它可以与@for东西一起使用,但不知道,如何使用特别是我的自定义模型会更好.

那么,如何View使用我的模型渲染数据呢?

谢谢!

Sam*_*ach 12

请参阅下面的视图.您只需预览您的收藏并显示合同.

控制器:

public class ContactsController : Controller
{
   public ActionResult Index()
   {
      var model = // your model

      return View(model);
   }
}
Run Code Online (Sandbox Code Playgroud)

视图:

<table class="grid">
<tr>
    <th>Foo</th>
</tr> 

<% foreach (var item in Model) { %>

<tr>
    <td class="left"><%: item.Foo %></td>
</tr>

<% } %>

</table>
Run Code Online (Sandbox Code Playgroud)

剃刀:

@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>
Run Code Online (Sandbox Code Playgroud)


Sam*_*son 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>
}
Run Code Online (Sandbox Code Playgroud)