.NET MVC: envío de varios modelos del mismo tipo a la vez

Creo que tengo un escenario bastante simple pero parece que no puedo entender cómo hacerlo en el marco MVC de .NET. En su forma más simple, esta es una forma que tiene personas con un ranking. Me gustaría tener el nombre de cada persona y un cuadro de texto junto a su nombre en una página. Así es como se ve el (Razor) Html:

@using (Html.BeginForm()) {
<fieldset>
    @foreach (var b in Model.Ballots) {
        <p>
            <label>@b.Person.FullName</label>
            @Html.TextBox("Rank")
            @Html.ValidationMessage("Rank")
        </p>
    }
</fieldset>
 <input type="submit" value="Vote" />

}

Una boleta es un objeto simple que tiene una persona y una clasificación:

public class Ballot {
    public Person Person { get; set; }
    [Range(1, 6, ErrorMessage="The voting range is 1 through 6")]
    public int Rank { get; set; }
}

Este es el método de mi controlador para manejar el envío del formulario, pero nunca se llama.

[AcceptVerbs("POST")]
    public ActionResult Vote(IEnumerable<Ballot> ballots) {

        return View("BallotComplete");
    }

¿Cómo hago para iterar todos los modelos que el formulario envía de vuelta al servidor?

Respuestas a la pregunta(1)

Su respuesta a la pregunta