В ASP.NET MVC, почему TempData не может сохраняться, когда Session делает? - PullRequest
1 голос
/ 15 апреля 2011

У меня есть проект ASP.NET MVC, который использует TempData для переноса объекта из одного действия контроллера в другое - на самом деле это то же самое действие, но версия, которая принимает сообщения HTTP.

На моей машине для разработкиэто работает как ожидалось.На тестовой машине значение TempData во втором действии контроллера равно нулю.

Сообщения форума, которые я видел, предлагают проверить, работает ли sessionState - что я и сделал.На обоих сайтах для sessionState установлено значение InProc - ни один из файлов web.config не содержит запись sessionState, но я проверил, что Session.Mode - это InProc.Если я помещаю объект в сеанс в первом действии контроллера, я могу получить его во втором на обеих машинах.

Я могу обойти это, повторно выполнив процесс, используемый для установки TempData в первом действии контроллера ввторое, но почему TempData может быть потеряна на тестовой машине?

1 Ответ

0 голосов
/ 16 апреля 2011

Убедитесь, что вы не читаете это, скажем, из макета (главной страницы) в дополнительное время.Чтобы быть уверенным, оберните вызов, где вы установили / получите эти значения, и запишите информацию трассировки, чтобы убедиться, что вы вызываете его только тогда, когда ожидаете.Некоторое время назад у меня была похожая проблема с приложением (mvc2), и оказалось, что я читал ее, когда впервые показалось, что это не так.

...