Verschiedene Modelle für Get und Post - MVC

8

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%     
Rasmus 11.10.2011, 12:59
quelle

2 Antworten

9

Ihre Modelle verwenden keine geeigneten Zugriffsmethoden, so dass die Modellbindung nicht funktioniert. Ändere sie zu diesem und es sollte funktionieren:

%Vor%     
Trax72 11.10.2011, 13:23
quelle
6

Ein wenig Klärung

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:

  • View Modelltypen
  • Aktionstyp-Parametertypen

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.

Verschiedene Arten? Natürlich können wir das!

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:

posten %Vor%

Oder irgendetwas anderes. Sie müssen nur sicherstellen, dass Post-Daten an diese Parameter und ihre Typeigenschaften gebunden werden können ...

    
Robert Koritnik 11.10.2011 13:06
quelle