Я пытаюсь передать данные в действие после перенаправления с помощью TempData, например:
if (!ModelState.IsValid)
{
TempData["ErrorMessages"] = ModelState;
return RedirectToAction("Product", "ProductDetails", new { code = model.ProductCode });
}
но, к сожалению, он не выполнил следующее сообщение:
'System.InvalidOperationException
The Microsoft.AspNet.Mvc.SessionStateTempDataProvider' cannot serialize an object of type 'ModelStateDictionary' to session state.'
Я нашел проблему в проекте MVC в Github, но пока он объясняет, почему я получаю эту ошибку, я не вижу, что будет жизнеспособной альтернативой.
Одним из вариантов было бы сериализовать объект в строку json, а затем десериализовать его и восстановить ModelState
. Это лучший подход? Существуют ли какие-либо потенциальные проблемы с производительностью, которые я должен учитывать?
И, наконец, существуют ли какие-либо альтернативы для сериализации сложного объекта или использования другого шаблона, который не включает использование TempData
?