Laden...

ASP.NET MVC: Gestaltung des Models bei Seiten mit Formularen

Erstellt von carom vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.553 Views
C
carom Themenstarter:in
90 Beiträge seit 2008
vor 12 Jahren
ASP.NET MVC: Gestaltung des Models bei Seiten mit Formularen

Ich frage mich gerade, wie man in einem ASP.NET MVC Projekt das zu verwendente Model gestaltet, wenn es sich um Formulare dreht. Um das etwas zu präzisieren:

Ein View bekommt in der Regel ja ein Model zugeteilt (bei Razor kann man es z.B. mit "@Model Name" festlegen). Bei Formularen hat man aus logischer Sicht aber zwei verschiedene Dinge, die man mit nur einem Model abbilden müsste: zum einen Modeldaten für die gewöhnliche Ausgabe, zum Beispiel auswählbare Werte einer drop down box oder Liste, zum anderen die Usereingaben, die an den Controller via Model geschickt werden. An diesem Beispiel kann man es gut sehen:

Html.RadioButtonListFor(m => m.UserValueFromForm, Model.SelectableValuesForForm)

Ist das aus eurer Sicht völlig ok, dass ein Model gleichzeitig für "Ein- und Ausgabe" zuständig ist? Vielleicht ist das auch ganz normal und es liegt an meiner Unerfahrenheit, bin zum ersten mal drüber gestolpert.

Danke

16.827 Beiträge seit 2008
vor 12 Jahren

In diesem Fall fügst Du dem Form-Model einen Rahmen zu - im Sinne eines ViewModels.
Das ViewModel enthält alle Werte der Listen, sowie das eigentliche Model (meist eine Entity).

1.002 Beiträge seit 2007
vor 12 Jahren

Hallo Abt,

ja, das ViewModel enthält üblicherweise zusätzliche Werte, die für die Anzeige benötigt werden, darin stimme ich natürlich mit dir überein. Dafür sind ViewModels ja schließlich gedacht.
Auf der anderen Seite ist das ViewModel aber eben nicht nur ein Wrapper um die Domain-Models (oder Entities). Ich will hier gar nicht zu sehr ins Detail gehen, sondern auf eine gute Antwort von Darin Dimitrov auf StackOverflow verweisen.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

16.827 Beiträge seit 2008
vor 12 Jahren

Das Vorgehen hab ich auch frueher gemacht. Aber den Aufwand alles doppelt zu pflegen (IValidateable) - absolut unnoetig und verhindert auch die MVC Build-Ins wie UpdateModel.

1.002 Beiträge seit 2007
vor 12 Jahren

Hallo Abt,

AutoMapper hilft beim Mappen der Eigenschaften natürlich ungemein, aber ein gewisser Mehraufwand bleibt, das ist richtig.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg