Ich habe ein Modell eingerichtet, das LINQ zu Entities verwendet, und Code funktioniert, der wie erwartet zur Datenbank hinzugefügt wird. Allerdings kann ich UpdateModel nicht funktionieren, wenn ich .NET 3.5 verwende.
%Vor%Dies führt zu der folgenden Ausnahme:
%Vor% Wenn ich UpdateModel(xyz)
mache, tritt die Ausnahme nicht auf, aber die Daten werden nicht gespeichert.
Wie kann ich UpdateModel damit arbeiten lassen (ohne auf .NET 4.0 zu aktualisieren), warum kann es nicht aktualisiert werden (Ausnahme ist nicht hilfreich, da es keine innere Ausnahme gibt)?
Was ich in meinen MVC-Projekten mache, ist, den Quellcode für den DefaultModelBinder von Codeplex zu nehmen und ihn in eine neue Klasse in Ihrem zu kopieren Projekt, wie MyDefaultModelBinder. Registrieren Sie dann dieses Modellbinder in Ihrem global.asax:
%Vor%Damit können Sie einen Haltepunkt in der BindModel-Methode festlegen, und Sie können herausfinden, warum es nicht binden kann.
Verwenden Sie TryUpdateModel()
anstelle von UpdateModel()
function, um dies zu lösen
Die Funktionen UpdateModel()
und TryUpdateModel()
werden verwendet, um das Modell mit den Formularwerten zu aktualisieren und Validierungen durchzuführen.
Unterschied zwischen UpdateModel()
& amp; TryUpdateModel()
UpdateModel()
löst eine Ausnahme aus, wenn die Validierung fehlschlägt, wobeiTryUpdateModel()
niemals eine Ausnahme auslöst, sondern true oder false zurückgibt
Tags und Links c# entity-framework asp.net-mvc-2