Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ASP.NET MVC: Gestaltung des Models bei Seiten mit Formularen
carom
myCSharp.de - Member



Dabei seit:
Beiträge: 92

Themenstarter:

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

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

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).
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

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.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers