Comment puis-je ajouter des lignes à une liste de collection dans mon Modèle?

Par souci de simplicité, disons que j'ai un User modèle qui dispose d'un List<Email> comme l'une de ses propriétés.

public class UserModel
{
    public string UserName { get; set; }
    public List<Email> Emails = new List<Email>();
}

public class Email
{
    public string Address { get; set; }
}

De mon point de vue, j'ai une liste d'e-mails:

<table>
@foreach(Email email in Model.Emails)
{
    <tr>
        <td>@Html.EditorFor(modelItem => email.Address)</td>
    </tr>
}
</table>

Maintenant, disons que je veux que l'utilisateur puisse cliquer sur un bouton qui ajoute une nouvelle ligne à la table, de sorte que l'utilisateur peut ajouter un nouvel e-Mail à la Liste qui est lié à leur Utilisateur. Comment dois-je faire? Ai-je besoin d'ajouter la nouvelle ligne via javascript, d'une certaine façon afin qu'il soit lié au modèle lorsque la page est affichée? Je n'ai aucune idée de comment l'approche de ce que je suis relativement nouveau à MVC venant de WebForms.

De liaison pour le modèle moyen de l'élément de formulaire ayant le même nom. Mais le type a besoin pour être en mesure d'être jumelés.

OriginalL'auteur Bryan Denny | 2012-03-28