Modellbindung an eine Liste in MVC 4
Beim Versuch, eine IList von Elementen an eine Ansicht in MVC 4 zu binden, können Probleme auftreten während HttpPost. Um dieser Herausforderung zu begegnen, betrachten Sie das folgende Muster:
ViewModel:
Erstellen Sie ein ViewModel, das die IList der Elemente enthält:
public class MyViewModel { public List<Person> Persons{get;set;} }
Ansicht:
In der Ansicht iterieren Sie über die IList und generieren Formulareingaben für jede Eigenschaft:
@model MyViewModel @for( int i = 0; i < Model.Persons.Count(); ++i) { @Html.HiddenFor(m => m.Persons[i].PersonId) @Html.EditorFor(m => m.Persons[i].FirstName) @Html.EditorFor(m => m.Persons[i].LastName) }
Aktion:
Behandeln Sie in der Aktionsmethode das gepostete MyViewModel-Objekt:
[HttpPost]public ViewResult(MyViewModel vm) { ... }
Überlegungen :
@for( int i = 0; i < Model.Persons.Count(); ++i) { @Html.Hidden($"Persons[{i}].PersonId", Model.Persons[i].PersonId) @Html.Editor($"Persons[{i}].FirstName", Model.Persons[i].FirstName) @Html.Editor($"Persons[{i}].LastName", Model.Persons[i].LastName) }
Das obige ist der detaillierte Inhalt vonWie kann ich während HttpPost effektiv eine Liste an eine Ansicht in ASP.NET MVC 4 binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!