Ich habe versucht, Daten nach einer Umleitung an eine Aktion zu übergeben, indem ich TempData wie folgt verwendet habe:
if (!ModelState.IsValid)
{
TempData["ErrorMessages"] = ModelState;
return RedirectToAction("Product", "ProductDetails", new { code = model.ProductCode });
}
aber leider schlägt es mit folgender Meldung fehl:
‚
System.InvalidOperationException
DasMicrosoft.AspNet.Mvc.SessionStateTempDataProvider'
kann nicht ein Objekt vom Typ serialisiert'ModelStateDictionary'
zu Sitzungszustand.‘
Ich habe ein Problem im MVC-Projekt in Github gefunden , aber obwohl es erklärt, warum ich diesen Fehler erhalte, kann ich nicht sehen, was eine praktikable Alternative wäre.
Eine Möglichkeit wäre, das Objekt in einen JSON-String zu serialisieren und es dann wieder zu deserialisieren und das zu rekonstruieren ModelState
. Ist das der beste Ansatz? Gibt es potenzielle Leistungsprobleme, die ich berücksichtigen muss?
Und schließlich gibt es Alternativen, um komplexe Objekte zu serialisieren oder ein anderes Muster zu verwenden, bei dem keine Verwendung erforderlich ist TempData
?