C# 使用MVC中实体的列表变量打印表格

C# 使用MVC中实体的列表变量打印表格,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,model-view-controller,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Model View Controller,我已经很长时间没有在MVC工作了;我是这方面的新手。因此,我有两个实体: // Entity Worker [Display(Name = "ID")] public Int32 Id { get; set; } [Display(Name = "Número")] public Int32 Numero { get; set; } [Display(Name = "Nome")] // Entity Lottery public Int32 Id { get; set; } [Di

我已经很长时间没有在MVC工作了;我是这方面的新手。因此,我有两个实体:

// Entity Worker

[Display(Name = "ID")]
public Int32 Id { get; set; }

[Display(Name = "Número")]
public Int32 Numero { get; set; }

[Display(Name = "Nome")]

// Entity Lottery

public Int32 Id { get; set; }

[Display(Name = "Tipo")]
public String Tipo { get; set; }

[Display(Name = "Data")]
public DateTime Data { get; set; }

[Display(Name = "Observações")]
public List<Worker> FuncionariosSorteados { get; set; }
其中服务是我的数据库连接存储库,在本例中,他通过ID在数据库上进行搜索以获得正确的彩票

这里我的疑问开始了,如果我想为彩票做一张桌子,我可以用彩票模型来做

@foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Tipo)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Data)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Observacoes)
            </tr>
    }

但是我怎么能对公共列表函数做同样的事情呢?我只想在GridMvc表中打印public List functioniossorteados,但是通过模型我无法访问它

我认为您需要在已经创建的foreach循环中遍历列表。大概是这样的:

@foreach (var item in Model)
{
  <table>
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Tipo)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Data)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Observacoes)
        </td>
    </tr>
  </table>
  <table>
    @foreach(var w in Model.FuncionariosSorteados )
    {
      <tr>
        <td>@Html.DisplayFor(w => w.Id)</td>
        <td>@Html.DisplayFor(w => w.Numero)</td>
      </tr>
    }
  </table>
}

我很困惑,因为在你的行为中,你拉一张彩票记录并将其传递给你的视图,但在你的视图中,你在迭代一个看起来像IEnumerable的东西

由于从类型为彩票的模型访问FunctionariosSorteAdos没有问题,因此我假设该视图实际上使用的是IEnumerable。对于可枚举项,必须遍历列表并访问单个项的属性。例如:

@model IEnumerable<Lottery>

@Model.FuncionariosSorteados <!-- fail -->

@foreach (var lottery in Model)
{
    @lottery.FuncionariosSorteados <!-- success -->
}

对于第二个实体,您可以这样创建它:

Entitie Lottery        
public Lottery( )    
{       
  FuncionariosSorteados = new List <Worker>();   
  }     
public Int32 Id { get; set; }       
[Display(Name = "Tipo")]     
public    String Tipo { get; set; }     
[Display(Name = "Data")]    
public DateTime Data { get; set; }      
 [Display(Name = "Observações")]      
 public virtual List<Worker> FuncionariosSorteados { get; set; }

然后在您的视图中,您可以使用foreach loup在列表中进行迭代

将模型类型定义为彩票并使用Include。这正是我要找的!谢谢
Entitie Lottery        
public Lottery( )    
{       
  FuncionariosSorteados = new List <Worker>();   
  }     
public Int32 Id { get; set; }       
[Display(Name = "Tipo")]     
public    String Tipo { get; set; }     
[Display(Name = "Data")]    
public DateTime Data { get; set; }      
 [Display(Name = "Observações")]      
 public virtual List<Worker> FuncionariosSorteados { get; set; }