Comment puis-je Lier une Collection (IEnumerable) d'un type personnalisé?

J'ai les mesures suivantes pour afficher un formulaire avec 3 éléments :

[HttpGet]
    public ActionResult ReferAFriend()
    {
        List<ReferAFriendModel> friends = new List<ReferAFriendModel>();
        ReferAFriendModel f1 = new ReferAFriendModel();
        ReferAFriendModel f2 = new ReferAFriendModel();
        ReferAFriendModel f3 = new ReferAFriendModel();

        friends.Add(f1);
        friends.Add(f2);
        friends.Add(f3);
        return View(friends);
    }

et puis un Post d'action

[HttpPost]
    public ActionResult ReferAFriend(IEnumerable<ReferAFriendModel> friends)
    {
        if(ModelState.IsValid){

MODIFIER
Mon point de Vue, ressemble à ceci:

@model IEnumerable<Models.ReferAFriendModel>
@for(int i=0;i<Model.Count();i++)
    {
        @Html.Partial("_ReferAFriend", Model.ElementAt(i));
    }

Partielle ressemble à ceci:

@model Models.ReferAFriendModel
<p>
   @Html.LabelFor(i => i.FullName) @Html.TextBoxFor(i => i.FullName)<br />
   @Html.LabelFor(i => i.EmailAddress) @Html.TextBoxFor(i => i.EmailAddress)
   @Html.HiddenFor(i=>i.Id)
</p>

Quand je poste, je peux voir les champs sont affichés dans la Demande.Objet de formulaire électronique.g Demande.Form["Nom"] apparaîtra: "David Beckham","Thierry Henry". "Chicharito Fergurson", qui sont les valeurs que je suis entré dans le formulaire. Mais, dans le Post de l'action,de la valeur pour les "amis" est toujours null. Le ReferAFriendModel a trois propriétés publiques Id, Adresse e-mail et Nom.

Ce que je fais mal?

Probablement quelque chose de mal avec votre formulaire/vue. Vous devez montrer que le code.
Double Possible de Comment passer IEnumerable liste de contrôleur MVC y compris la case à cocher état?

OriginalL'auteur robasta | 2011-06-02