2009-04-09 3 views
0

J'ai une application de page maître asp .net et une page de contenu a un certain nombre de contrôles sur elle.Comment capturer un état de session

Je souhaite stocker le contenu/l'état de ces contrôles dans l'état de session lorsqu'un utilisateur accède à une autre page de contenu. Ma question est, comment puis-je savoir quand capturer l'état de contrôle? Y a-t-il un événement de type que je peux utiliser pour déclencher une procédure?

Merci d'avance pour toute information.

Bill

Répondre

0

On peut supposer qu'ils naviguent loin de cette page via un contrôle que vous les avez fournis (bouton, lien, etc.) Vous pouvez piéger l'action sur le côté serveur à ce point et mettre en cache votre état.

2

Il n'y a pas de véritables gestionnaires d'événements côté serveur "global" que vous pouvez utiliser pour détecter quand l'utilisateur va à une autre page (ou même simplement appuyer sur le bouton de retour dans le navigateur). La meilleure solution consiste simplement à écrire une méthode dans votre page maître qui enregistrera votre état de session, puis exécuter un Response.Redirect() à l'emplacement spécifié. Ensuite, faites tous vos liens passer par cette méthode lorsque vous avez besoin de suivre l'état de la session.

0

Qu'en est-il de l'utilisation des variables de session?

Voir ce lien pour plus d'informations: ASP.Net Session

Il y a plusieurs façons de maintenir l'état. Il y a des compromis, peu importe la version que vous utilisez. Par exemple, je n'utiliserais pas de variables de session sur une application équilibrée en charge sur plusieurs serveurs; Vous n'êtes pas sûr d'obtenir le même serveur pour chaque requête et l'état est stocké serveur par serveur.

Il est difficile de battre ce

Session["myState"] = 7; // bad example 

pour la simplicité, cependant. :)