Контроллеры (как объекты) создаются для каждого запроса . Следовательно, нет необходимости оптимизировать данные в контроллере , которые были бы «повторно использованы» во многих действиях (как предложил Джефф Редди). Если вы не вызываете метод действия явно из другого метода действия (что в любом случае является плохой практикой).
Создайте закрытый метод GetData (), который получает данные из базы данных и вызывает их при каждом действии.
Однако вы, вероятно, хотите избежать дорогостоящих обходов базы данных, которые получают одни и те же данные снова и снова, а затем подумайте об использовании HttpRuntime.Cache. Вы можете сохранить данные там при первом вызове GetData () и извлечь их из кэша при последующих запросах.