ASP.NET MVC3 Bindung an Unterklasse

8

Ich habe eine Oberklasse vom Typ Question mit mehreren Unterklassen (z. B. MultipleChoiceQuestion und TextQuestion ). Jede der Unterklassen hat ihre eigenen Editor-Vorlagen (z. B. ~ / Shared / EditorTemplates / MultipleChoiceQuestion.cshtml ).

Was ich tun möchte, ist eine Liste von Frage Objekten zu erstellen:

%Vor%

, das wirklich Instanzen der Unterklassen enthält:

%Vor%

Ich gebe den Fragebogen dann an die Ansicht weiter, wo ich rufe:

%Vor%

Die Ansicht rendert erfolgreich die richtigen Editorvorlagen für die spezifischen Unterklassen Question -Modelle.

Das Problem besteht darin, dass mein Formular Fragebogen (das eine Liste mit dem Typ Frage enthält) beim Übergeben des Formulars nur Instanzen von Frage und nicht die Instanzen der Unterklassen. Außerdem sind die Instanzen der Eigenschaften Question alle null.

Als Test habe ich eine Liste vom Typ MultipleChoiceQuestion übergeben und es funktioniert gut:

%Vor%

Gibt es eine Möglichkeit, die HttpPost-Aktion zu erhalten, um mein Modell mit den Unterklassen zurückzugeben, die mit meinen Formulardaten instanziiert wurden?

Danke

    
user853894 20.07.2011, 12:49
quelle

1 Antwort

2

Ich denke, Sie stoßen auf eine Beschränkung des DefaultModelBinders. Um dieses Problem zu lösen, müssen Sie ein Kundenmodellbinder verwenden.

Sie könnten diesen Beitrag nützlich finden. es spricht über dieses spezifische Problem.

    
Steve Morgan 20.07.2011, 12:55
quelle