Я наткнулся на этот вопрос в поисках аналогичной проблемы. Просто в случае, если кто-то еще находится в той же ситуации, принятый ответ Джоша Э. ошибочен - ViewData НЕ сохраняется в нескольких запросах, он предназначен только для передачи данных в View, что происходит внутри одного и того же запроса. TempData IS сохраняется в запросах, но значения, хранящиеся в нем, очищаются после однократного чтения.
Я недостаточно знаком с Entity Framework, чтобы знать, поддерживается ли он, но вы можете хранить любой (сериализуемый?) Объект в сеансе. Однако время жизни этих объектов зависит от времени жизни сеанса, если вы не удалите их вручную. Кроме того, это может занять значительное количество памяти. Я полагаю, что наиболее желательный метод - использовать постоянную среду, которая может управлять этим для вас. Я не знаю, может ли Entity Framework сделать это. Для тех из нас, кто застрял в ADO, мне еще предстоит найти хорошее решение.