2 Stimmen

Was ist ein Modell in MVC. Sollte ich es als eine Reflexion einer Ansicht in Bezug auf die darin enthaltenen Daten verstehen?

Das Modell sollte also als Spiegelung einer Ansicht in Form von Daten betrachtet werden. Zum Beispiel würde das Modell eines Kontaktformulars lauten: Name, E-Mail-Adresse, Website-Name und Beschreibung? Ist dies konzeptionell korrekt?

Danke V.

4voto

Was Sie erklärt haben, ist im Wesentlichen ein ViewModel: ein Modell, das auf eine Ansicht zugeschnitten ist. Aber die Definition eines Modells würde lauten die Objekte, die Informationen an die Datenbank senden, Geschäftsfunktionen ausführen und lediglich die Darstellung der Domain der Anwendung .

1voto

Daniel A. White Punkte 180762

Ja, das ist ein Fall von Modell. Ein Modell kann auch aus Regeln einer Geschäftsdomäne bestehen.

から ウィキペディア :

Das Modell verwaltet das Verhalten und die Daten der Anwendungsdomäne, antwortet auf Anfragen nach Informationen über seinen Zustand (normalerweise von der View) und reagiert auf Anweisungen zur Zustandsänderung (in der Regel vom Controller). In ereignisgesteuerten Systemen benachrichtigt das Modell Beobachter (in der Regel Sichten), wenn sich die Informationen ändern, damit diese reagieren können.

0voto

David Fox Punkte 10382

Generell, ja . Manchmal ist es mühsam, aber ein 1:1-Verhältnis von "View"-Modell zu View funktioniert sehr gut, und hält die Bedenken getrennt.

public class ContactFormViewModel
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string WebsiteName { get; set; }
}

Wenn Sie die Visual Studio-Funktion ( unter der Annahme der Version 3 von MVC und der Razor-Syntax ), um eine Ansicht zu generieren, die dieses Ansichtsmodell erbt, würde es etwa so aussehen:

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>ContactFormViewModel</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
    ...

Damit haben Sie zwei Möglichkeiten:

  • Ein wenig CSS-Styling (wieder, nur die Standard-Vorlage)
  • Validierung
  • 1 Modell zu ändern, wenn sich die Logik des Kontaktformulars ändert

0voto

Martin Punkte 14816

Oui.

Es gibt zwei Möglichkeiten, ein Modell in einer MVC-Anwendung zu betrachten. Die beiden haben viele Überschneidungen, sind aber nicht unbedingt gleich.

  • Ansichtsmodell - enthält ein Modell der Daten, die in einer Ansicht erstellt, gelöscht, bearbeitet oder angezeigt werden sollen.

  • Entitätsmodell - enthält ein Modell eines Datensatzes aus einer Datenquelle, der erstellt, gelöscht, bearbeitet oder in einer Ansicht angezeigt werden soll.

Wie Sie sehen können, ist dies in den meisten Fällen dasselbe. Es gibt Situationen, in denen es sinnvoller ist, an ein Ansichtsmodell zu denken.

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