Ich habe zwei Modelle:Liste der Modelle bei Model in 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; }
}
Und ich habe ModelOut Controller-Bearbeitung:
public ActionResult People()
{
...
return View(SomeModelOutInstanceWith3People);
}
[HttpPost]
public ActionResult(ModelOut items)
{
...
}
In Anbetracht Ich habe etw mag:
<% 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" />
<% } %>
Es funktioniert alles in Ordnung, aber in Post-Aktion habe ich leere ModelOut Elemente. Ich kann in Protokollen sehen, dass Daten korrekt gesendet werden.
Ich habe alles versucht, nichts funktioniert.
Alles funktionierte gut, wenn ich IList anstelle von ModelOut hatte –
Ari
Versuchen Sie, es zu "öffentlichen ActionResult People (ModelOut Modell)" statt nur 'm' umzubenennen. MVC kann bei Parameternamen wählerisch sein. – Dai
@David Param Name ist Elemente. Ich habe diesen Namen, als es mit der Liste arbeitete, also denke ich, dass das Problem anderswo sein muss –
Ari