478 Stimmen

Was ist ViewModel in MVC?

Ich bin neu in ASP.NET MVC. Ich habe ein Problem mit dem Verständnis der Zweck eines ViewModel.

Was ist ein ViewModel und warum brauchen wir ein ViewModel für eine ASP.NET MVC-Anwendung?

Wenn ich ein gutes Beispiel für die Funktionsweise und eine Erklärung bekomme, wäre das noch besser.

0voto

Tim Whatley Punkte 58

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,);
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X