Как сохранить ViewData в TempData, когда не используются сессии?

Недавно я узнал, что TempData для MVC по умолчанию поддерживается сессиями, что является ужасной идеей, если кто-то намеревается создать веб-ферму...

Я попытался реализовать поставщик TempData на основе Cookie Брока Аллена, однако сам объект ViewData не помечен как Seriablizable и, как таковой, не может быть сохранен в поставщике на основе файлов cookie (или в службе состояний сеансов и т. Д. И т. Д.)

Type 'System.Web.Mvc.ViewDataDictionary' in Assembly 'System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable.

BrockAllen.CookieTempData.CookieTempDataProvider.SaveTempData(ControllerContext controllerContext, IDictionary`2 values) in c:\ballen\github\CookieTempData\45\BrockAllen.CookieTempData\CookieTempDataProvider.cs:31

System.Web.Mvc.TempDataDictionary.Save(ControllerContext controllerContext, ITempDataProvider tempDataProvider) +154

Как мне обойти это?!

Обновить:

Возможно, лучший способ задать вопрос: как отправить ViewData другому методу контроллера (PRG: Post, Redirect, Get paradigm) БЕЗ необходимости в TempData (и, следовательно, в сеансах)?

0 ответов

Другие вопросы по тегам