Где хранить общие данные для обмена между страницами - PullRequest
0 голосов
/ 14 марта 2011

У меня есть страница с 3 пользовательскими элементами управления.Я хочу, чтобы некоторые данные из базы данных были разделены между этими пользовательскими элементами управления.Где на самом деле я должен сохранить его.Я использую статический класс, чтобы сохранить его сейчас.Я не думаю, что это хорошая идея.
эти данные на самом деле зависят от первого пользовательского контроля.Поэтому, если пользователь внес какие-либо изменения в первый элемент управления usercontrol, я снова получаю эти данные из базы данных.

Я не уверен, где мне хранить эти данные.Должен ли я использовать сеанс или статический класс?

Ответы [ 5 ]

2 голосов
/ 14 марта 2011

Одним из способов было бы сохранить ее в переменной Session и прочитать / записать эту переменную Session через свойство, определенное в базовом классе, от которого наследуются все 3 элемента управления (или, как вы сказали, статический класс, который у них всех есть доступ к).

Посмотрите этот ответ , чтобы узнать, как определить свойство, которое выполняет чтение / запись для переменной Session.

1 голос
/ 14 марта 2011

Возможны следующие варианты:

  • Viewstate [область действия - страница, данные сохраняются после обратной передачи]
  • Сессия [область действия - сеанс клиента, данные сохраняются на страницах]
  • Applicationstate [для глобальной области видимости]
  • База данных и комбинация вышеперечисленного [область видимости распространяется на сеансы клиента]

Статические классы не являются хорошей идеей, по причинам уже

См. Сохранение состояния страницы asp.net

1 голос
/ 14 марта 2011

ASP.NET предоставляет различные подходы к управлению состоянием в зависимости от ваших требований.

Статический класс - плохая идея, потому что все ваши посетители увидят одни и те же данные.

Вы можете получить дополнительную информацию о состояниях здесь , выбрав тот, который лучше всего подходит для вашей задачи.

1 голос
/ 14 марта 2011

Эти 2 параметра не имеют одинаковой области действия.

Сеанс сохраняет данные для пользователя, когда пользователь перемещается по страницам ASP.NET в веб-приложении.

и

Статический класс хранит данные для всего живого вашего веб-приложения (любые пользователи, любые сеансы)

1 голос
/ 14 марта 2011

Если это данные, которыми вы хотите поделиться в течение более длительного времени, тогда хорошо сохранить их в базе данных и вызвать их с соответствующих страниц. Особенно, если они могут решить покинуть / выйти, прежде чем перейти на последнюю страницу, которая в противном случае сохранила бы ее.

Если вы просто сохраняете его между страницами, и после этого его не нужно хранить, использование Session, безусловно, допустимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...