tengo dos modelos:Lista de modelos de Modelo en MVC
class ModelIn{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
}
class ModelOut{
public ModelOut(){ People = new List<ModelIn>();}
public List<ModelIn> People { get; private set;}
public string Country { get; set; }
}
Y tengo controlador de edición ModelOut:
public ActionResult People()
{
...
return View(SomeModelOutInstanceWith3People);
}
[HttpPost]
public ActionResult(ModelOut items)
{
...
}
En vista tengo como algo:
<% using (Html.BeginForm()) { %>
<%: Html.EditorFor(m => Model.Country) %>
<% for(int i = 0; i < Model.People.Count; ++i){ %>
<%: Html.EditorFor(m => Model.People[i].FirstName) %>
<%: Html.EditorFor(m => Model.People[i].LastName) %>
<%: Html.EditorFor(m => Model.People[i].Address) %>
<% } %>
<input type="submit" />
<% } %>
Funciona todo bien, pero en la acción posterior tengo elementos vacíos de ModelOut. Puedo ver en los registros que los datos se envían correctamente.
He intentado todo, nada funciona.
Todo funcionaba bien cuando tuve IList en lugar de ModelOut –
Ari
Intente cambiar el nombre a 'public ActionResult People (ModelOut model)' en lugar de simplemente 'm'. MVC puede ser quisquilloso con los nombres de los parámetros. – Dai
@David param name is items. Tengo este nombre cuando estaba trabajando con la lista, así que creo que el problema debe estar en otro lugar –
Ari