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

Posted

技术标签:

【中文标题】如何在 ASP.NET MVC 4 Razor 项目的视图中显示集合?【英文标题】:How to display a collection in View of ASP.NET MVC 4 Razor project? 【发布时间】:2013-06-26 10:09:41 【问题描述】:

我有以下型号:

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 实体从数据库中获取数据。 Controller 中模型实例的绑定问题已完成,我对此没有任何问题,我只处理渲染问题。

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

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

谢谢!

【问题讨论】:

是的,遍历 List 并显示每个合同。 【参考方案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>

【讨论】:

以上是关于如何在 ASP.NET MVC 4 Razor 项目的视图中显示集合?的主要内容,如果未能解决你的问题,请参考以下文章

[Asp.Net Core]MVC_Razor布局

[Asp.Net Core]MVC_Razor布局

ASP.NET MVC 3、Razor 视图和可移植区域

如何在 Visual Studio 2017 的 ASP.NET MVC 中创建自定义生成/脚手架模板(Razor)?

如何使用asp.net mvc razor在视图中访问全局资源

如何使用 jquery 或 ajax 在 c#/asp.net 中为 MVC 项目更新 razor 部分视图