ASP.NET MVC 2 - "Das Modell des Typs 'XYZ' konnte nicht aktualisiert werden" bei Verwendung von UpdateModel und LINQ to Entities (.NET 3.5)

8

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)?

    
SamWM 21.09.2010, 14:03
quelle

3 Antworten

13

Verwaltet, um das Problem zu lösen. Kann auf zwei Arten erfolgen:

%Vor%

oder

%Vor%

Keine Ahnung, warum TryUpdateModel funktioniert, aber UpdateModel nicht. Vielleicht nur ein Fehler in .NET 3.5.

    
SamWM 24.09.2010, 14:21
quelle
2

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.

    
dave thieben 21.09.2010 16:38
quelle
0

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, wobei TryUpdateModel() niemals eine Ausnahme auslöst, sondern true oder false zurückgibt

    
Umang Patwa 24.02.2017 07:03
quelle