Ein Viewmodel ist in der Regel eine Aggregation/Kombination von zwei oder mehr Modellen.
Nehmen wir an, wir haben eine DB mit zwei Tabellen namens Student und Course mit jeweils zwei Modellen. Auf der Client-Seite haben wir zwei Ansichten, um jede Tabelle darzustellen.
Stellen Sie sich vor, Sie benötigen eine weitere Ansicht, die sowohl Schüler als auch Kurse anzeigt? Dann können Sie ein so genanntes Viewmodel erstellen. Dabei handelt es sich im Grunde um eine Klasse, die beide Modelle, d.h. Schüler und Kurse, aufnimmt.
Die Klasse CombinedStudentsCourses wird das Ansichtsmodell sein und kann von der Ansicht zurückgegeben werden.
public class Student
{
public string? Name{ get; set; }
public string? Email{ get; set; }
}
DIES ist unser Ansichtsmodell mit zwei darin kombinierten Modellen.
public class Course
{
public string? CourseName { get; set; }
public string? CourseCode { get; set; }
}
ViewModel, d.h. die Kombination von zwei oder mehr Modellen, um die spezifischen Anforderungen unserer Ansicht zu erfüllen.
public class SchoolSystem
{
public Students Student { get; set; }
public Courses Course { get; set; }
}
public ActionResult<SchoolSystem> Index()
{
var SchoolSystemViewModel = new SchoolSystem();
// now we have access two to tables i.e two models in our
//view.
return this.View("SchoolSystemView", SchoolSystemViewModel,);
}