Modelo ASP.NET MVC que vincula un parámetro IList <>

[Resolví esto yo mismo, mira mi respuesta por causa]

Tengo problemas para obtener valores de formulario para un argumento IList <> en un método de controlador configurado correctamente.

Mi clase de controlador se ve así:

public class ShoppingBasketController : Controller {

    public ActionResult Index() {
        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Add(IList<ShoppingBasketItem> items) {
        Session["basket"] = items; // for testing
        return RedirectToAction("Index");
    }
}
public class ShoppingBasketItem {
     public int ItemID;
     public int ItemQuantity;
}

La forma ligeramente recortada:

<% using (Html.BeginForm("Add", "ShoppingBasket")) { %>
    <% int codeIndex = 0;
    foreach (Product product in products) { %>
        <%= Html.Hidden("items[" + codeIndex + "].ItemID", product.Id) %>
        <%= Html.TextBox("items[" + codeIndex + "].ItemQuantity", "0", new { size = "2"}) %>
        <% codeIndex++;
    }
} %>

Que produce un marcado como:

<form action="/Basket/Add" method="post">
    <input id="items[0]_ItemID" name="items[0].ItemID" type="hidden" value="1" />
    <input id="items[0]_ItemQuantity" name="items[0].ItemQuantity" size="2" type="text" value="0" />

    <input id="items[1]_ItemID" name="items[1].ItemID" type="hidden" value="2" />
    <input id="items[1]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" />

    <input id="items[2]_ItemID" name="items[2].ItemID" type="hidden" value="3" />
    <input id="items[2]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" />
</form>

He comprobado los valores del formulario que se envían y son correctos. El número correcto deShoppingBasketItems también se ponen enSession["basket"], sin embargo, tanto laItemID yItemQuantity de cada uno son cero. Parece que decodifica correctamente la lista de valores de formulario, pero no selecciona las propiedades en sí.

Estoy usando MVC RC2, y basado en unarticle por Scott Hanselman Estoy bastante seguro de que mi código es correcto. ¿Me estoy perdiendo de algo

Respuestas a la pregunta(1)

Su respuesta a la pregunta