【发布时间】:2012-05-31 19:37:50
【问题描述】:
我有一个模型 Person(其中包括出生日期) 我想将所有人的列表以及每个人的计算年龄一起传递给视图
为此:
-
视图模型
public class vm_PersonList { public Person Person { get; set; } public int age { get; set; } } -
控制器动作:
public ActionResult PersonList() { ViewBag.Message = "My List"; var list = new List<vm_PersonList>(); var list_p = new vm_PersonList(); foreach (var p in db.Person) { list_p.Person = p; //the age will be calculated based on p.birthDay, not relevant for the //current question list_p.age = 23; list.Add(list_p); } return View(list); } -
景色
@model List<programname.Viewmodels.vm_PersonList> @foreach (var p in Model) { <tr> <td> @p.Person.FullName </td> <td> @p.age </td> </tr> }
Person 表包含例如 6 个条目。 在调试我看到的应用程序时:
在控制器操作“列表”的末尾正确包含 6 个不同的人员条目
在视图中,“模型”包含 6 个条目,但是最后一个“数据库条目”的 6 倍。 有人有解决此问题的建议吗?
【问题讨论】:
-
移动 var list_p = new vm_PersonList();进入 foreach 循环。
标签: c# asp.net asp.net-mvc razor asp.net-mvc-4