Wie ich aus der folgenden Frage verstehe, sollte es möglich sein, verschiedene Modelle für Get- und Post-Aktionen zu verwenden. Aber irgendwie gelingt mir das nicht.
Was vermisse ich?
Verwandte Frage: Verwendung von zwei verschiedenen Modellen in der Controller-Aktion für POST und GET
Modell
%Vor%Controller
%Vor%Anzeigen
%Vor%GET- und POST-Controller-Aktionen können problemlos die von ihnen benötigten Typen verwenden. Eigentlich reden wir hier nicht von Modellen. Modell ist eine Gruppe von Klassen / Typen, die einige Anwendungszustände / Daten repräsentieren. Daher Anwendung oder Daten Modell.
Was wir hier behandeln, sind:
Ihr Anwendungsmodell ist also immer noch dasselbe. Und GetModel
und PostModel
sind nur zwei Klassen / Typen in diesem Modell. Sie sind kein Modell per se.
In Ihrem Fall verwenden Sie einen View-Modelltyp GetModel
und übergeben dann seine Daten an den Aktionsparameter PostModel
. Da diese beiden Klassen / Typen beide Eigenschaften mit denselben übereinstimmenden Namen haben, kann der Standardmodellbinder PostModel
-Eigenschaften auffüllen. Wenn Eigenschaftsnamen nicht identisch wären, müssten Sie die Ansicht so ändern, dass die Eingaben umbenannt werden, um die Eigenschaftsnamen des POST-Aktionstyps widerzuspiegeln.
Sie können auch eine Ansicht mit GetModel
type erstellen und dann Aktionen mit verschiedenen Parametern wie:
Oder irgendetwas anderes. Sie müssen nur sicherstellen, dass Post-Daten an diese Parameter und ihre Typeigenschaften gebunden werden können ...
Tags und Links asp.net-mvc asp.net-mvc-3 model-binding