ASP.net пользовательский контроль кошмар - PullRequest
1 голос
/ 02 марта 2010

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

Каждый раз, когда страница загружается, к ней добавляется элемент управления, я использую сеанс для воссоздания ее состояния, где это применимо. Когда я ухожу со страницы, я очищаю сеанс через окно JavaScript .onunload с помощью веб-метода. Window.onunload доставлял мне неприятности, выполняя ПОСЛЕ нового события page_load, создавая ситуацию, с которой очень трудно справиться.

Любые советы о том, как исправить это без отказа от пользовательских элементов управления все вместе? Как еще можно повторно использовать код, не вырывая волосы? Спасибо!

Ответы [ 2 ]

1 голос
/ 02 марта 2010

Я решил проблему с использованием IsPostBack на странице, на которой размещен пользовательский элемент управления. Таким образом, каждый раз, когда страница не является результатом обратной передачи, переменные состояния пользовательского элемента управления будут инициализированы.

1 голос
/ 02 марта 2010

Это обычная головная боль. Основываясь на всей литературе, которую я видел, а также на своем личном опыте, просто не практично зависеть от сеанса очистки с помощью JavaScript или любых других средств. Концепция состояния сеанса накладывается на HTTP; оно никогда не предназначалось для поддержки сеанса.

Звучит так, как будто вы доводите состояние сеанса до его предела. Рассматривали ли вы ViewState или базу данных для управления данными с состоянием? Почему так важно очищать данные сеанса каждый раз, когда пользователь уходит?

...