Suche…


Bemerkungen

Das MVC-Architekturmuster (Model-View-Controller) unterteilt eine Anwendung in drei Hauptkomponenten: das Modell, die Ansicht und den Controller. Das ASP.NET MVC-Framework bietet eine Alternative zum ASP.NET-Web Forms-Muster zum Erstellen von Webanwendungen. Das ASP.NET MVC-Framework ist ein leichtes, testbares Präsentationsframework, das (wie bei Web Forms-basierten Anwendungen) in vorhandene ASP.NET-Features wie Masterseiten und auf Mitgliedschaft basierende Authentifizierung integriert ist. Das MVC-Framework ist in der System.Web.Mvc-Assembly definiert.

Das MVC-Framework umfasst die folgenden Komponenten:

  • Modelle . Modellobjekte sind die Teile der Anwendung, die die Logik für die Datendomäne der Anwendung implementieren. Modellobjekte rufen Modellstatus häufig in einer Datenbank ab und speichern sie. Beispielsweise kann ein Product-Objekt Informationen aus einer Datenbank abrufen, sie bearbeiten und aktualisierte Informationen dann in eine Product-Tabelle in einer SQL Server-Datenbank zurückschreiben. In kleinen Anwendungen ist das Modell oft eine konzeptionelle Trennung anstelle einer physischen. Wenn die Anwendung beispielsweise nur eine Datenmenge liest und an die Ansicht sendet, verfügt die Anwendung nicht über eine physische Modellebene und zugeordnete Klassen. In diesem Fall übernimmt der Datensatz die Rolle eines Modellobjekts.
  • Ansichten Ansichten sind die Komponenten, die die Benutzeroberfläche (UI) der Anwendung anzeigen. Normalerweise wird diese Benutzeroberfläche aus den Modelldaten erstellt. Ein Beispiel wäre eine Bearbeitungsansicht einer Product-Tabelle, in der Textfelder, Dropdown-Listen und Kontrollkästchen basierend auf dem aktuellen Status eines Product-Objekts angezeigt werden.
  • Controller . Controller sind die Komponenten, die die Benutzerinteraktion handhaben, mit dem Modell arbeiten und schließlich eine Ansicht zum Rendern der angezeigten Benutzeroberfläche auswählen. In einer MVC-Anwendung werden in der Ansicht nur Informationen angezeigt. Der Controller verarbeitet und reagiert auf Benutzereingaben und Interaktionen. Beispielsweise verarbeitet der Controller die Werte der Abfragezeichenfolge und übergibt diese Werte an das Modell, das diese Werte möglicherweise zur Abfrage der Datenbank verwendet.

Versionen

Ausführung .NET-Version Veröffentlichungsdatum
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011-01-13
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013-10-17
MVC 5.1 .NET 4.5 2014-01-17
MVC 5.2 .NET 4.5 2014-08-28
MVC 6.0 .NET 4.5 2015-11-18
Core MVC 1.0 .NET 4.5 2016-07-12
Kern-MVC 1.1 .NET 4.5 2016-11-18

Hallo MVC!

ASP.NET MVC ist ein Open Source-Webanwendungs-Framework. MVC selbst ist ein Entwurfsmuster, das aus drei Hauptkomponenten besteht: Model-View-Controller .

Modell - Modelle spiegeln Ihre Geschäftsobjekte wider und sind ein Mittel zum Übertragen von Daten zwischen Controllern und Ansichten.

Ansicht - Ansichten sind die Seiten, die dem Benutzer die Modelldaten rendern und anzeigen. ASP.NET-MVC-Ansichten werden normalerweise mit der Razor-Syntax geschrieben.

Controller - Controller verarbeiten eingehende HTTP-Anforderungen von einem Client und geben in der Regel eines oder mehrere Modelle an eine entsprechende Ansicht zurück.

Die ASP.NET MVC-Funktionen:

  1. Ideal für die Entwicklung komplexer Anwendungen mit geringem Gewicht
  2. Es bietet ein erweiterbares und einsteckbares Framework, das leicht ausgetauscht und angepasst werden kann. Wenn Sie beispielsweise nicht die eingebaute Razor- oder ASPX-View-Engine verwenden möchten, können Sie andere View-Engines von Drittanbietern verwenden oder sogar die vorhandenen anpassen.
  3. Verwendet den komponentenbasierten Entwurf der Anwendung durch logische Unterteilung in Modell-, Ansichts- und Steuerungskomponenten. Dadurch können die Entwickler die Komplexität von Großprojekten verwalten und an einzelnen Komponenten arbeiten.
  4. Die MVC-Struktur verbessert die testgetriebene Entwicklung und Testbarkeit der Anwendung, da alle Komponenten schnittstellenbasiert entworfen und mithilfe von Mock-Objekten getestet werden können. Daher ist das ASP.NET MVC Framework ideal für Projekte mit einem großen Team von Webentwicklern.
  5. Unterstützt alle vorhandenen umfangreichen ASP.NET-Funktionen wie Autorisierung und Authentifizierung, Masterseiten, Datenbindung, Benutzersteuerelemente, Mitgliedschaften, ASP.NET-Routing usw.
  6. Es verwendet nicht das Konzept von View State (das in ASP.NET vorhanden ist). Dies hilft beim Erstellen von Anwendungen, die leicht sind und den Entwicklern die volle Kontrolle geben.

Einfache MVC-Anwendung

Wir werden eine einfache MVC-Anwendung erstellen, die Personendetails anzeigt. Erstellen Sie ein neues MVC-Projekt mit Visual Studio. Fügen Sie das neue Modell " Person" im Ordner "Models" wie folgt hinzu:

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}

Neuen Controller zum Ordner "Controller" hinzufügen:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}

Fügen Sie schließlich View zu / Views / Home / Ordner mit dem Namen Index.cshtml hinzu :

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow