2009-08-01 9 views
0

Sur la page1.aspx, j'ai un bouton lié à un événement buttonOnClick du côté serveur. Cliquer sur le bouton exécute la méthode buttonOnClick qui génère un objet (méthode locale à la méthode buttonOnclick) avec des données que j'aimerais utiliser dans la construction d'une nouvelle page.Passage d'un objet d'une page à une autre dans ASP.NET

Fondamentalement, je veux ouvrir une nouvelle page (différente) (page2.aspx) dans un nouvel onglet, mais comme cette page se charge, je veux que le rendu se base sur le contenu de l'objet généré pendant buttonOnClick.

Comment on pourrait s'y prendre correctement? Jusqu'à présent, je passais des arguments d'URL à la nouvelle popup (page2.aspx) et je l'ai construit l'objet, mais je préfère le faire correctement et le générer buttonOnclick, puis charger page2.aspx dans un popup basé sur ce qui est l'objet construit dans la méthode buttonOnclick.

+0

Page1.aspx et page2.aspx s'exécutent sur le même serveur. (Ils sont même dans le même dossier :-)) – Matt

+0

Matt, éditez votre question avec des informations supplémentaires. N'ajoutez pas de commentaires. –

+0

Aussi, un petit point: cela n'a rien à voir avec IIS. En outre, c'est "ASP.NET", pas "ASP". Il y a encore des gens qui sont obligés de créer et de maintenir des pages ASP réelles. Nous appelons cela "Classic ASP" juste pour les faire se sentir mal dans leur peau. –

Répondre

3

Stockez l'objet dans votre session sur la première page, puis récupérez-le sur votre deuxième page.

Sur la première page:


Session["myobject"] = myObject; 

Sur la deuxième page:


MyObject object = (MyObject) Session["myobject"]; 
+0

Merde, c'est facile! :-) – Matt

1

La meilleure chose à faire serait de stocker l'objet en session de l'utilisateur.

Session["myObject"] = myObject; 

Pour obtenir, vous devrez jeter de nouveau le type de MyObject, puisque le cache de session est simplement un Hashtable d'objets.

if (Session["myObject"] != null) 
{ 
    MyObject myobj = (MyObject)Session["myObject"]; 
} 

Vous pouvez y accéder à partir des deux pages de cette façon. Généralement, si plusieurs pages accèdent au même objet dans Session, je stocke généralement le nom de la clé de session dans un emplacement centralisé de sorte qu'il ne doit être mis à jour qu'une fois si jamais vous décidez de le modifier. En général, j'ajouter un fichier de ressources à ma demande et le mettre dans le dossier Propriétés, donc je peux l'utiliser de cette façon:

string key = WebApplication1.Properties.MyObjectSessionKey; 
Session[key] = myObject; 
0

Utiliser l'état de session ou de stocker l'objet dans une base de données et de transmettre l'identifiant à la deuxième page . L'objet devra être sérialisable pour cela.

Questions connexes