ASP MVC4 - Passer de la Liste pour afficher via le modèle de vue

J'ai un modèle de Personne (avec entre autres les champs le jour de la Naissance)
et je veux passer d'une liste de toutes les personnes, ensemble avec le calcul de l'âge de chaque personne, à la vue

À cet effet:

  1. Le modèle de vue

    public class vm_PersonList
    {
        public Person Person { get; set; } 
        public int age { get; set; }
    }
  2. L'action de contrôleur:

    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);
    }
  3. La vue

    @model List<programname.Viewmodels.vm_PersonList>
    
    @foreach (var p in Model)
    {
        <tr>
            <td>
                @p.Person.FullName
            </td>
            <td>
                @p.age
            </td>  
        </tr>
    }

La Personne de la table contient, pour l'exemple 6 entrées.
Lors du débogage de l'application que je vois:

À la fin de l'action de controller "liste" contient correctement le 6 Personne différente entrées

Dans la vue, le "Modèle" contient 6 entrées, mais 6 fois, la dernière, "saisie de données".
Quelqu'un aurait-il une suggestion pour résoudre ce problème?

déplacer var list_p = new vm_PersonList(); dans la boucle foreach.

OriginalL'auteur user1416778 | 2012-05-25