2009-08-28 9 views
1

Das ASP.NET MVC-Standardprojekt richtet ein "Models" -Verzeichnis ein, das ich nicht kenne, das ich jemals in den wenigen MVC-Projekten verwendet habe, an denen ich gearbeitet habe. Normalerweise habe ich ein separates "Bibliothek" -Projekt, das Geschäftslogikklassen speichert.ASP.NET MVC "Models" -Verzeichnis: Wofür ist es gut?

Jetzt bin ich neugierig: Fehle ich etwas großes, indem ich nicht den Vorteil des Standard-ASP.NET "Models" -Verzeichnisses ausnutze? Gibt es eine eingebaute Funktionalität, die das gut nutzt?

Antwort

8

Ich verwende dieses Verzeichnis normalerweise für meine Ansichtsmodelle. Domänenmodelle befinden sich in einem separaten Projekt/einer separaten Assembly, die Ansichtsmodelle werden jedoch mit dem Webprojekt im Verzeichnis Models gespeichert. Das Hinzufügen von Modellen zu diesem Verzeichnis richtet diese automatisch im Namespace * .Models ein.

2

Der Ordner selbst hat keine "spezielle" Funktionalität, sondern ist lediglich ein Vorschlag, wo Sie Ihre Modellklassen (d. H. Ihre Datenklassen, z. B. ORM (LINQ)) aufbewahren.

Beispiel Klassen sind Kunde, Adresse, Bestellung usw., die Modell die zugrunde liegenden Daten Entitäten.

1

Da ich meine Modelle in der Regel halte in einer separaten Projekt/Montag verwende ich die Models Ordner UI bestimmte Klassen zu speichern, wie wenn ich eine Ansicht, die beide zeigen ein Widget und Foosit, ich sie nur in einem WidgetFoositContext einpacken Objekt.

public class WidgetFoositContext { 
    public Widget Widget { get; } 
    public Foosit Foosit { get; } 
} 
1

Ich verwende das Modellverzeichnis, um Kompositionen meiner Geschäftsobjekte zu speichern. Wenn Sie in der Produkt-Controller sind, werde ich eine ProductViewData-Klasse erstellen, um das Produkt selbst sowie eine Liste empfohlener Produkte und eine Liste von Bewertungen auf dem Produkt zu speichern.

Ich bevorzuge es, meine Geschäftsobjekte ziemlich einfach zu halten und das Modellverzeichnis ist, wo ich verschiedene Formen von Daten zusammenbringen kann, die ich aus meiner Sicht brauche.

5

Sie verpassen nichts. Meiner Meinung nach ist der einzige Grund, dass der Ordner erstellt wird, einfach, weil es ASP.NET MVC ist und sie Ordner für die "M", "V" und "C" benötigten. Standardmäßig sagt ASP.NET MVC Ihnen nicht, wie Sie das "M" implementieren, daher erhalten Sie nur einen leeren Ordner als Vorschlag, wo Sie Ihre Modellklassen platzieren möchten. Sie können diesen Ordner löschen und Ihr Modell dort platzieren, wo Sie möchten.