Если получаемые данные зависят от пользователя, рассмотрите возможность использования сеанса. Если все пользователи используют одни и те же данные, рассмотрите возможность использования кэша.
Я бы не рекомендовал использовать состояние представления для кэширования результатов базы данных, поскольку оно быстро увеличивает размер отображаемой разметки. Кроме того, содержимое состояния просмотра должно быть не только загружено, но и отправлено обратно на сервер при отправке формы, поэтому в состоянии просмотра вы платите штраф за производительность дважды.
Другой вариант, который вы не упомянули, - это использование коллекции HttpContext.Items. Это делает отличный способ кэширования данных базы данных за запрос . Этот метод весьма полезен, если у вас есть много отдельных модулей на странице (таких как главная страница и пользовательские элементы управления), которые извлекают одни и те же данные, так как это позволяет запрашивать эти данные один раз, а затем кэшировать в течение срока действия конкретного запроса , Для получения дополнительной информации см. HttpContext.Items - кэш-хранилище по запросу .