Échec du chargement du viewstate. Le contrôle de l'arbre dans lequel l'état d'affichage est en cours de chargement
Je reçois le message d'erreur suivant après un HTTP POST sur un ASP.NET formulaire hébergé à l'intérieur d'un UserControl:
Échec du chargement de viewstate. Le contrôle de l'arbre dans lequel l'état d'affichage est en cours de chargement doit correspondre à l'arborescence de contrôle qui a été utilisé pour enregistrer l'état d'affichage lors de la précédente demande. Par exemple, lorsque vous ajoutez des contrôles dynamiquement, les contrôles ajoutés au cours de l'après-back doit correspondre au type et de la position des contrôles ajoutés lors de la demande initiale.
Voici plus d'infos:
- Je suis en cours d'exécution .NET 4.5 RC
- C'est un Umbraco 4.7-site web
- Sur mon local dev machine la forme des œuvres parfaitement
- Cette erreur se produit uniquement sur le serveur de test .NET 4.5 (uniquement), MSSQL 2012 Express, IIS 7.5, Windows 7 (je sais, c'est pas un vrai serveur encore, un jour peut-être...)
- Le serveur ne fait pas partie d'une batterie de serveurs web (ou sur le jardin, tho qui devrait être irrevelant)
- À l'utilisateur de contrôler ne rendu des contrôles dynamiquement
J'ai appliqué tous les derniers service packs.
Je suis à court d'idées maintenant! J'ai même redémarré et a également réalisé un richual sur le serveur impliquant une chanson et une danse spéciale en vain.
OriginalL'auteur krisdyson | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
Ce qui est important lorsque vous ajoutez des contrôles dynamiquement sur l'événement pour lequel vous ajoutez.
Si vous avez ajouté des contrôles sur les événements qui se produisent après la charge, ils feront partie de l'état d'affichage vous envoyer au client.
Vous devrez ajouter ces contrôles de nouveau avant de
LoadViewState
est appelé.Si vous exécutez dans le cas où la décision de contrôles à ajouter, c'est lui-même stocké dans le
ViewState
ou la valeur d'un contrôle, alors n'oubliez pas de même avant laViewState
est chargé, ces données sont disponibles dansRequest.Params
Reportez-vous à la asp.net page cycle de vie
Si elle ne parvient pas pour le même cas de test sur le serveur, je suis à court d'idées. Mais c'est généralement une erreur de codage. Jamais vu une erreur de déploiement.
Ouais exactement! Je peux faire quelque chose au sujet de l'encodage des bugs, mais c'est juste bizarre. merci quand même
Ah oui, je vois le problème, les gars, vous êtes tous à l'aide de Formulaires web!
Bonne réponse de l'homme!
OriginalL'auteur nunespascal
J'ai juste ajouté
EnableViewState="false"
sur ma page à l'emplacement réservé, et son parti. Espérons que cela fonctionne pour u.EnableViewState="False"
de gridview le problème est résolu.OriginalL'auteur Hooman
Cette Erreur Se produit Principalement pendant les opérations de Changement d'état: d'Un Modèle À l'autre Modèle, comme dans le cas du Modèle d'Élément, Modifier l'Élément de Modèle, dans les Contrôles de Formulaire de type de Vue, les Vues de Liste, de la Vue de Détail, Affichage de la Grille dans ASP .net (tous les cadres);
Tandis que le Changement de contrôle, les états-dire
Item Template ---> Edit Template
les points suivants ont été vont modifier
1) les Commandes de changement (son ID & unis)
2) Ses Positions de change.
Alors que la Transformation de vue si aucun message de retour se produit, vous obtiendrez une Erreur comme
si vous êtes à l'aide de commandes distinctes pour la liaison de données comme (bouton,link_button_Image_button événements), vous obtiendrez cette erreur signalée !
Pour éviter cette erreur >>> une Fois que les changements d'état d'un modèle à l'autre au sein de la méthode que vous appelez liaison de source de données ( Ne pas appeler pendant ou cliquez sur n'importe quel post-sauvegarde des événements ).
OriginalL'auteur Mark Macneil Bikeio
OK, donc la réponse est littéralement: "mettre en place un nouveau serveur avec tous le même logiciel que la dernière et essayez à nouveau", et cela fonctionne maintenant.
La cause du problème semble être quelque chose à faire avec le Système.Web.L'optimisation des lots comme il fonctionne quand je le désactiver
OK, je peux voir que l'ajout du Système.Web.L'optimisation.BundleTable.Les faisceaux.ResolveBundleUrl à ma page principale est la prévention de l'état d'affichage de fonctionner correctement.
Vous devez mettre à jour la question avec vos conclusions et accepter une réponse, puisqu'il y a toujours de l'activité ici 🙂
OriginalL'auteur krisdyson
Je ajouter un attribut "name" avec la même valeur d'id, ce problème a disparu.
OriginalL'auteur David
Vérifier si vous avez la méthode de reliure de la commande directement dans votre événement de chargement de page. Cela peut provoquer ce problème.
OriginalL'auteur SubqueryCrunch
Vous pouvez ajouter de nouveaux espace Réservé par UserControls
OU
Vous pouvez définir
enableviewstate=false
sur le contrôle , si vous n'avez pas besoin de viewstateOriginalL'auteur Omid Farvid
Dans mon cas, j'ai eu une vue de grille (OnPageIndexChanging) de l'événement
et quand je clique sur une page, rien ne se passera jusqu'à ce que je clique deux fois!
J'ai été l'actualisation de la source de données avant de mettre la nouvelle page d'index.
OriginalL'auteur iYazee6
J'ai eu le même problème. Cette question a été au client final, mais il n'a pas eu lieu dans mon système local.
Après des heures de recherche sur google, j'avais écrit EnableViewState="false" à ma table de la balise dans la page aspx qui dispose de tous les contrôles dynamiques et puis j'ai enlevé tous les viewstate variables et au lieu de cela, j'ai créé cachées des zones de texte dans la page aspx et accepté DB les valeurs dans le code derrière et de les utiliser tout au long de mon code. Puis, il a résolu mon problème.
Mais pourtant, je ne pouvais pas comprendre ce qui s'était exactement le problème.
OriginalL'auteur user6785638
Cela peut se produire si vous remplacez
SaveViewState
dans votre contrôle, mais ne pas ignorerLoadViewState
.OriginalL'auteur David Kemp