Кэширование переменных в ASP.NET - PullRequest
0 голосов
/ 01 ноября 2011

Как я могу кэшировать переменные в ASP.NET на уровне страницы?То есть я хочу кэшировать любые переменные, которые загружаются во время цикла загрузки страницы, но как только страница полностью загружена, я хочу, чтобы переменная была выгружена.

ОБНОВЛЕНИЕ: Я хочу, чтобы данные кэшировались на сервере.

Ответы [ 4 ]

3 голосов
/ 01 ноября 2011

Похоже, вам просто нужно объявить свои переменные на уровне класса, например:

public class MyPage : Page
{
  private int _classVariable:

  pageLoad()
  {
     _classVariable = 1;
   }
}

Если я не пропущу что-то очевидное

2 голосов
/ 01 ноября 2011

Любая переменная, объявленная в page_load, будет видна во время этого процесса и будет автоматически удалена.

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

Session["value"] = value;

ViewState["value"] = value;
1 голос
/ 01 ноября 2011

Вы можете кэшировать элементы в текущем HttpContext , которые доступны на время запроса.

HttpContext.Current.Items["VariableName"] = value;

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

1 голос
/ 01 ноября 2011

Есть один словарь, который вы используете холодным

Page.Items["variableName"] = yourObject;

Вы можете получить к нему доступ из любого элемента управления или пользовательского элемента управления или Page it self, и он будет передан всему дереву элементов управления Page 100

Но если вам не нужен общий объект, или он вам нужен для каждого запроса в коде страницы после поля make private, он будет установлен по умолчанию при следующем запросе, и вы можете изменить его на что угодно в событии Page_Load

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