我正在尝试使用从数据库中提取的数据创建一个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>
}
}
答案 0 :(得分:1)
由于您没有发布视图的完整代码:您应该在视图中定义要绑定的对象类型,如下所示:
@model IEnumerable<PopulationModels>
然后你可以用foreach循环遍历它并使用:
绑定到当前项目@Html.DisplayFor(x => x.Popname)
答案 1 :(得分: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循环,因为您正在模型列表中迭代模型。
我希望这有助于将来参考!