Хранить сложный объект в TempData

Я пытался передать данные в действие после перенаправления с помощью TempData следующим образом:

if (!ModelState.IsValid)
{
    TempData["ErrorMessages"] = ModelState;
    return RedirectToAction("Product", "ProductDetails", new { code = model.ProductCode });
}

но, к сожалению, он не работает со следующим сообщением:

'System.InvalidOperationException Microsoft.AspNet.Mvc.SessionStateTempDataProvider' не может сериализовать объект типа'ModelStateDictionary' в состояние сеанса.

Я нашел проблему впроект MVC в Github, но в то время как это объясняет, почему я получаю эту ошибку, я не вижу, что было бы жизнеспособной альтернативой.

Одним из вариантов будет сериализация объекта в строку json, а затем десериализация его и восстановлениеModelState, Это лучший подход? Есть ли потенциальные проблемы с производительностью, которые я должен принять во внимание?

И, наконец, есть ли альтернативы для сериализации сложного объекта или использования какого-либо другого шаблона, который не предполагает использованияTempData?

Ответы на вопрос(2)

Ваш ответ на вопрос