Viewbag используется в области генерации страницы single . Он не сохраняет данные между разными страницами.
Что означает, что ваш вопрос сводится к:
Как сохранить данные между разными страницами?
Здесь есть несколько решений:
- Использовать cookie .
Файлы cookie существуют специально для того, чтобы браузер пользователя сохранял информацию, которую впоследствии можно будет найти на вашей веб-странице. Это работает, только если обе страницы находятся в одном домене, поскольку доступ к файлам cookie ограничен доменом текущей страницы (например, файл cookie Twitter не может получить доступ к файлу cookie facebook).
- Использовать Сеанс Данные.
Данные сеанса существуют специально для того, чтобы иметь временное хранилище данных для пользователя. Рассматривайте данные сеанса как (своего рода) файл cookie на веб-сервере, который длится только столько времени, сколько сеанс (который обычно заканчивается после примерно 20 минут бездействия или когда пользователь закрывает свой браузер).
(TempData похожа на данные сеанса)
- Явно передать параметр на вторую страницу.
Вместо того, чтобы кэшировать значение, просто сделайте его параметром URL второй страницы. Например: http://www.example.com/SecondPage?selectedLocationId=123
.
В зависимости от того, как вы генерируете страницу, веб-сервер или сценарий на загруженной веб-странице могут прочитать параметр URL и соответствующим образом установить значение раскрывающегося списка.
Доступно больше решений, но это стандартные решения, которые не требуют большой дополнительной работы.