Сохранять объекты C# через постбэки

У меня есть страница asp.net с кодом C# позади, который выполняет некоторые функции в методе Page_Load() (например, выполняет запрос к базе данных и делает несколько других вызовов для заполнения объектов данными). Затем я отображаю эти данные на странице. Это все отлично работает. Я настроил пару обратных передач, чтобы при щелчке по значению в списке элемент управления панели заполнялся остальными данными соответствующего объекта. Я думал, что обратные вызовы были правильным способом сделать это, но это вызывает повторный вызов (всего класса?), Который повторно инициализирует мои объекты и уничтожает данные, которые я хочу сохранить.

Решит ли эта проблема какую-то форму частичной обратной передачи, или есть лучший способ реализовать то, что я пытаюсь сделать?

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

Я нашел много вопросов относительно сохраняющихся объектов Javascript, но на самом деле ничего такого, что могло бы решить эту проблему. Я использую.Net 4.0

3 ответа

Решение

Поместите объекты в Session для текущего пользователя.

Поместите все ваши вещи инициализации в (!IsPostback) { } и использовать частичные обратные передачи. Таким образом, код инициализации больше не вызывается во время обратной передачи.

Почему вы не кэшируете объект?

API-интерфейс кэширования с использованием объекта Cache: http://msdn.microsoft.com/en-us/library/aa478965.aspx

Другие вопросы по тегам