ASP.NET MVC CookieTempDataProvider.DeserializeTempData возвращает значение null

Я пытался использовать CookieTempDataProvider для передачи основного сообщения между публикацией (обновление объекта) и получением (список объектов) с использованием метода RedirectToAction. При использовании реализации TempData по умолчанию это работает нормально, однако, когда я использую версию на основе файлов cookie из проекта MVC Futures, словарь TempData пуст после перенаправления. Это связано с тем, что TempDataDictionary возвращается как null из метода DeserializeTempData. Я точно знаю, в какой строке кода возникает проблема, и знаю, как ее исправить, но я не могу поверить, что эта проблема возникла только у меня.

Возможно, я использую неправильную версию проекта MVC Futures, но я только что скачал Исходный код ASP.NET MVC v1.0, и проблема определенно существует. Кто-нибудь еще использует CookieTempDataProvider и работает ли он у вас?

Проблема с классом CookieTempDataProvider, насколько я понимаю, находится в строке 62, где он приводит десериализованный объект как TempDataDictionary, а не как IDictionary‹string, object›. Когда я делаю это изменение, все работает отлично.

Кто-нибудь еще видит эту проблему, или это только у меня?


person jimr    schedule 25.08.2009    source источник
comment
Обновление по этому поводу: когда я запускаю модульные тесты MVC, все они проходят, но когда я использую класс в своем приложении, десериализация работает, но не считает полученный объект TempDataDictionary.   -  person jimr    schedule 26.08.2009
comment
Дальнейшее обновление: при выполнении модульных тестов объект, который передается в метод ITempDataProvider.SaveTempData, представляет собой TempDataDictionary и сериализуется следующим образом. Однако при запуске приложения MVC объект, который передается в метод ITempDataProvider.SaveTempDatadata, представляет собой IDictionary‹string, object› и сериализуется как Dictionary‹string, object›.   -  person jimr    schedule 27.08.2009
comment
Для всех, кто заинтересован, эта ошибка теперь исправлена ​​​​в MVC 3.   -  person jimr    schedule 15.08.2011


Ответы (1)


То же самое. Не работало после использования сборки как из MVC Futures. Изменение строки 62, как вы предложили, устранило проблему. Спасибо за публикацию.

person Michael Paladino    schedule 23.02.2010
comment
Ага. MVC 2.0 и ошибка в строке 62 по-прежнему на 100% не повреждены (и вызывали те же самые проблемы/проблемы, когда TempData не будет неповрежденным после перенаправления). - person Michael K. Campbell; 07.10.2010