Если вы хотите повторно использовать viewmodel или другие извлеченные данные, которые не будут частью обратной передачи, вы можете либо
a) Вывести их в скрытые поля, чтобы они были отправлены обратно в ваши действия(meh) или
b) Сохраните объект (ы) в сеансе, чтобы он был доступен для любых других контроллеров / действий в вашем приложении.Если вас беспокоит память, вы можете удалить эту переменную сеанса после ее повторного использования, если вам не понадобится использовать ее снова.
При начальной загрузке страницы проверьте, существует ли переменная сеанса, если онада, у вас все хорошо - еще заполните его.
Да, и почему глобальные переменные не работают -> контроллер новый для каждого запроса (при условии использования фабрики контроллеров по умолчанию) и как таковойлюбые глобальные переменные в контроллере будут сбрасываться при каждом запросе.