que tienen la siguiente acción para mostrar un formulario con 3 artículos:¿Cómo vinculo una colección (IEnumerable) de un tipo personalizado?
[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);
}
y luego una acción posterior
[HttpPost]
public ActionResult ReferAFriend(IEnumerable<ReferAFriendModel> friends)
{
if(ModelState.IsValid){
EDIT Mi vista se parece a esto:
@model IEnumerable<Models.ReferAFriendModel>
@for(int i=0;i<Model.Count();i++)
{
@Html.Partial("_ReferAFriend", Model.ElementAt(i));
}
El parcial se ve así:
Cuando publico, puedo ver que los campos se publican en el objeto Request.Form, por ejemplo Request.Form ["FullName"] mostrará: "David Beckham", "Thierry Henry". "Chicharito Fergurson", que son los valores que ingresé en el formulario. Pero, en la acción Post, el valor de 'amigos' siempre es nulo. El ReferAFriendModel tiene tres propiedades públicas Id, EmailAddress y FullName.
¿Qué estoy haciendo mal?
Probablemente algo mal con su forma/vista. Deberías mostrar ese código. – RPM1984
Posible duplicado de [¿Cómo pasar la lista de IEnumerable al controlador en MVC, incluido el estado de la casilla de verificación?] (Http://stackoverflow.com/questions/17037858/how-to-pass-ienumerable-list-to-controller-in-mvc- including-checkbox-state) – abatishchev