私はモデルの人物(他のフィールドの中で誕生日)を持っており、すべての人物のリストを各人物の計算された年齢とともにビューに渡したい
そのため:
ビューモデル
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 つの異なる Person エントリが正しく含まれています。
ビューでは、「モデル」には 6 つのエントリが含まれていますが、最後の「データベース エントリ」の 6 倍です。この問題を解決するための提案はありますか?