Numéro d'article: 316920 - Dernière mise à jour: mercredi 30 janvier 2002 - Version: 1.0 PRB : Message d'erreur "État d'affichage non valide" lorsque vous utilisez Server.Transfer
Ancien nº de publication de cet article : F316920 SommaireSymptômes
Lorsque vous utilisez HttpServerUtility.Transfer(" nom de page", true), le message d'erreur suivant apparaît : L'état d'affichage n'est pas valide pour cette page et peut être endommagé. Cause
Ce problème se produit car l'attribut EnableViewStateMac de l'élément <pages> est défini par défaut sur true. Lorsque cet attribut a la valeur true, ASP.NET exécute un contrôle d'identification des messages (MAC, Message Authentication Check) sur l'état d'affichage de la page lorsque celle-ci est renvoyée par le client. Ce contrôle détermine si l'état d'affichage de la page a été modifié sur le client. Pour des raisons de sécurité, il est recommandé de conserver cet attribut sur la valeur true. Lorsque vous appelez la méthode Server.Transfer et définissez le deuxième paramètre sur true, vous préservez les collections QueryString et Form. L'un des champs de formulaire est le champ masqué __VIEWSTATE, qui contient l'état d'affichage associé à la page. Le contrôle d'authentification des messages pour l'état d'affichage échoue car ce contrôle vérifie uniquement chaque page. Par conséquent, l'état d'affichage de la page qui appelle Server.Transfer n'est pas valide sur la page de destination. L'état d'affichage est étendu à la page et sa validité se limite uniquement à cette page. L'état d'affichage ne doit pas être transféré d'une page à l'autre. Résolution
Pour résoudre ce problème, appliquez l'une des méthodes suivantes : Résolution 1Transférez des valeurs entre les pages pour passer vos valeurs de contrôle serveur aux autres pages. Pour plus d'informations, reportez-vous à la documentation MSDN suivante :Passage des valeurs de contrôle serveur entre des pages Ceci impose la création de propriétés publiques pour chaque propriété d'un contrôle auquel vous voulez accéder à partir de la page de destination. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.asp) Si vous disposez d'un grand nombre de contrôles et si vous voulez accéder aux propriétés de ces contrôles à partir d'une autre page, vous pouvez également déclarer ces contrôles comme des variables publiques. Par exemple : Page1.aspx Résolution 2Ne passez pas le second paramètre (qui a par défaut la valeur false) lorsque vous appelez Server.Transfer. Par exemple :Plus d'informationsÉtapes à suivre pour reproduire ce comportement
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésTraductions disponibles
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email

Retour au début