我只是想传递一个列表并在视图中的表中动态显示它。我有一个主页模型和主页控制器,并且变量设置正确,但我不知道如何将它传递给视图。
我的模型如下所示:
public class HomePageModel
{
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Display(Name = "ExtNum")]
public string ExtNum { get; set; }
[Display(Name = "PhoneDisplay")]
public List<PhoneDisplay> PhoneDisplay { get; set; }
}
这是控制器:
public ActionResult Homepage(HomePageModel HpModel)
{
ViewBag.Welcome = "Welcome: ";
ViewBag.FirstName = HpModel.FirstName;
ViewBag.LastName = HpModel.LastName;
ViewBag.Extlbl = "Extension: ";
ViewBag.Ext = HpModel.ExtNum;
ViewBag.Todaylbl = "Today:";
ViewBag.Today = DateTime.Now;
DBOps ops = new DBOps();
HpModel.PhoneDisplay = ops.getDisplayInfo(HpModel.ExtNum);
return View(HpModel);
}
PhoneDisplay 是一个包含线路索引、描述字符串和 4 位数字的列表。每个用户将在此列表中至少有 1 个项目,最多 6 个。我能够传递其他参数并将它们显示在视图中,但我找不到传递列表并动态显示它的方法。
编辑 我做到了这一点,但仍然找不到列表项。
@model AxlMVC.Models.HomePageModel
<table>
<caption style="font-weight:bold">Your Phone Information</caption>
<tr>
<th>Line Index</th>
<th>Display</th>
<th>Extension Number</th>
</tr>
@{
foreach (var item in Model.PhoneDisplay) //problems here
{
<tr>
<td>
@Html.Display(item.numplanindex)
</td>
<td>
@Html.Display(item.display)
</td>
<td>
@Html.Display(item.dnorpattern)
</td>
</tr>
}
}
</table>
编辑 我调试了cshtml文件,foreach循环中的项目也被很好地传递了,但是表格没有显示在页面上,我能看到的项目也不是每列的标题和标题