0

我正在尝试使用从数据库中提取的数据制作一个 HTML 表...

这是我的模型...

public class PopulationModels
{
    public List<PopulationModel> Populations { set; get; }
}

这只是一个列表......

public class PopulationModel
{
    public string populationID { set; get; }

    public string PopName { set; get; }

    public string Description { set; get; }

    public string PopulationType { set; get; }

    public Boolean isActive { set; get; }

    //public List<XSLTACOData> patients { set; get; }
}

我像这样将这个模型传递给我的视图......

IEnumerable<PopulationModels> PopModel = DataRepo.Get(userName);
return View(PopModel);

我尝试通过以下方式显示列表...

@foreach (var item in Model) {
<tr>
    <td class="rowControl hidden">
        @*<a href="#makeRowEditable" class="makeRowEditable">Edit</a>*@ |
        @*<a href="#deleteRow" class="deleteRow">Delete</a>*@
        @Html.DispalyFor(modelItem => item.Populations)
    </td>
</tr>
}

但是我很难弄清楚如何访问我的模型的各个元素......

例如

@Html.DispalyFor(modelItem => item.Populations)

上面的代码行,我想获取每个单独的 populationModel 并为每个字段映射一个列...但我似乎无法访问各个种群...我在这里错过了一个合乎逻辑的步骤(我显然是,但是哪一步?)

更新:添加更多视图:我现在正在制作一张桌子,但我这样做的方式似乎违反直觉......

这是我的模型...

 @model IEnumerable<FocusedReadMissionsRedux.Models.PopulationModels>

这是我创建表的方式(我计划在我能够获得一种可靠的方式来访问我的数据时立即使用 jqGrid 的 tableToGrid 功能......

<table border="2">
<thead>
  <tr>
  <th>
    Population Name
  </th>
   <th>
    Population Description
  </th>
  </tr>
</thead>
@foreach(var item in Model){
foreach (var pop in item.Populations)
{
<tr>
    <td class="rowControl hidden">
        @Html.DisplayFor(modelItem => pop.PopName)
        @Html.ActionLink(pop.PopName,"","")
    </td>
    <td>
        @Html.DisplayFor(modelItem => pop.Description)
        @Html.Display(pop.Description)
    </td>
</tr>
}

}

4

2 回答 2

1

由于您没有发布视图的完整代码:您应该在视图中定义要绑定的对象类型,如下所示:

@model IEnumerable<PopulationModels>

然后,您可以使用 foreach 循环遍历它并使用以下方法绑定到当前项目:

@Html.DisplayFor(x => x.Popname)
于 2012-05-22T16:07:15.853 回答
0

首先.. 一个好的命名约定是重命名您的

PopulationModels

PopulationList

这让其他在你身后的程序员了解模型的目的。

引入你的模型:

@model Models.PopulationList

然后,我们可以使用 foreach 或 for 循环遍历模型列表:

<table>
    <thead>
        <tr>
            <th>Population Name</th>
            <th>Population Description</th>
        </tr>
    </thead>
    <tbody>
    @foreach(Population pop in PopulationList)
    {
       <tr>
          <td>@Html.DisplayFor(model => pop.PopName)</td>
          <td>@Html.DisplayFor(model => pop.PopDesc)</td>
       </tr>
    }
    </tbody>
 </table>

您只需要一个 foreach 循环,因为您正在迭代模型列表中的模型。

我希望这对将来的参考有所帮助!

于 2013-11-06T13:45:31.620 回答