Heim > Backend-Entwicklung > C++ > Wie kann ich Listen von Elementen effizient an Ansichten in MVC 4 binden?

Wie kann ich Listen von Elementen effizient an Ansichten in MVC 4 binden?

DDD
Freigeben: 2024-12-30 04:18:28
Original
610 Leute haben es durchsucht

How Can I Efficiently Bind Lists of Items to Views in MVC 4?

Benutzerdefinierte Modellbindung für Listen in MVC 4

Das Binden einer Liste von Elementen (IList) an eine Ansicht in MVC war eine häufige Herausforderung für Entwickler. Während es ältere Lösungen gibt, führt MVC 4 Verbesserungen ein, die den Prozess vereinfachen.

Für Szenarien, in denen jedes Element in der Liste ein eigenes Formular für die Dateneingabe erfordert, sollten Sie Ihr ViewModel wie folgt strukturieren:

public class MyViewModel
{
   public List<Person> Persons{get;set;}
}
Nach dem Login kopieren

In der Ansicht, innerhalb der BeginForm:

@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)         
}
Nach dem Login kopieren

Die HttpPost-Aktion würde die aktualisierte Ansicht erhalten Modell:

[HttpPost]public ViewResult(MyViewModel vm)
{
...
}
Nach dem Login kopieren

Beachten Sie, dass beim Postback nur Eigenschaften mit entsprechenden Eingaben im Formular Werte haben. Dies liegt daran, dass die Modellbindung von MVC nach aufeinanderfolgenden IDs sucht und die Bindung stoppt, sobald eine Lücke auftritt. Daher ist es wichtig sicherzustellen, dass alle Elemente in der Liste gültige IDs haben und keine Lücken im Formular vorhanden sind.

Das obige ist der detaillierte Inhalt vonWie kann ich Listen von Elementen effizient an Ansichten in MVC 4 binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage