Cette question est peut-être ancienne et résolue, mais la meilleure réponse ne mentionne pas tout, et il y a des informations clairement affichées sur Microsoft.com à ce sujet :
Méthode Server.Execute
Les collections et propriétés suivantes sont disponibles pour la page ASP exécutée :
- Variables d'application même s'ils sont définis dans la page d'appel.
- Propriétés de la session même s'ils sont définis dans la page d'appel.
- Variables et propriétés du serveur même s'ils sont définis dans la page d'appel.
- Demander des collections et des propriétés même s'ils sont définis dans la page d'appel. Cela inclut Formulaire y Chaîne d'interrogation données transmises à la page appelante.
- Collections et propriétés des réponses . Le fichier .asp exécuté peut modifier les en-têtes HTTP. Toutefois, comme pour tout fichier .asp, si le fichier .asp exécuté tente de modifier les en-têtes HTTP après avoir envoyé une réponse au client, il génère une erreur.
Comme vous pouvez le constater, Microsoft propose 5 façons de transmettre des variables à un fichier de type Server.Execute
méthode. Avant que je ne voie ceci sur Microsoft, la méthode préférée était Session
comme le suggère la meilleure réponse, puisque j'ai vu cela avant l'info sur Microsoft.com. Mais après avoir remarqué que QueryStrings
peut être passé de la page précédente, je dois dire que ce battement utilise Session
pour le passage des valeurs. Session
serait nécessaire si votre application vous obligeait à ajouter des variables à la page en cours d'exécution.
Mais en passant des variables, je dirais QueryStrings
et il est facile à appliquer si votre application permet cette flexibilité. Je suis sûr que vous savez déjà utiliser les querystrings, mais dans le sens où vous l'utilisez pour une Server.Execute
vous pouvez simplement faire ceci :
Envisagez d'avoir ASP1.asp
y ASP2.asp
:
ASP1.asp comprend :
Server.Execute("ASP2.asp")
ASP2.asp comprend :
Response.Write Request("id")
Lorsque vous appelez ASP1.asp?id=123
Vous remarquerez que ASP2.asp voit également la même chose. Querystring
transmis à ASP1.asp, afin qu'il écrive 123
sur la réponse de ASP1.asp.
C'est beaucoup moins compliqué que d'utiliser un Session
pour la tâche.