Ich habe den folgenden Code:
%Vor%Es funktioniert gut: Wenn das Bearbeitungsformular gepostet wird, habe ich den Action Controller, der angerufen wird.
Jetzt ändere ich ein bisschen meinen Code wie folgt:
%Vor%In dieser neuen Version habe ich ein Ansichtsmodell mit einem Konstruktor.
Dieses Mal, wenn mein Formular zurückgeschickt wird, wird der Action Controller niemals ausgelöst.
Irgendeine Idee?
Danke.
Das ist normal. Das Standardmodellbinder kann Ihr Ansichtsmodell nicht mehr instanziieren, da es keinen parameterlosen Konstruktor hat. Sie müssen einen benutzerdefinierten Modellordner schreiben, wenn Sie Ansichtsmodelle verwenden möchten, die keinen Standardkonstruktor haben.
Normalerweise benötigen Sie keinen solchen benutzerdefinierten Konstruktor. Sie könnten Ihr View-Modell einfach so haben:
%Vor%und die POST-Aktion so:
%Vor% und jetzt müssen Sie nur den requestId
-Parameter anstelle von req
POSTIEREN, und der Standardmodellbinder erledigt die Aufgabe.
Wenn Sie aus irgendeinem Grund ein Ansichtsmodell mit benutzerdefiniertem Konstruktor verwenden möchten, sehen Sie hier ein Beispiel für die Darstellung des benutzerdefinierten Modellbinders:
%Vor% wird in Ihrem Application_Start
:
Tags und Links asp.net-mvc