2012-02-13 3 views
1

J'ai travaillé sur une poignée de contrôles utilisateur ASP.NET qui seront intégrés dans une instance CMS Sitecore. Le développement a été complété en utilisant quelques pages ASPX factices pour héberger les contrôles et tout fonctionne correctement localement et lorsque le projet est déployé sur un serveur de test.ASP.NET ViewState dupliqué en postback

Cependant, lorsque nous intégrons les modules dans Sitecore, quelques actions provoquent une exception 'Invalid Viewstate' - 'Caractère invalide dans la chaîne base64'. J'ai répliqué ceci localement, c'est-à-dire sur mon système de développement, en configurant IIS pour regarder le projet de Sitecore ainsi ceci m'indique que ce n'est pas un problème de serveur mais évidemment je ne peux pas être sûr de cela. En utilisant fiddler, je peux voir que la requête POST contient non pas un mais deux champs __VIEWSTATE, en effet __EVENTVALIDATION, __EVENTTARGET et __EVENTARGUMENT ont deux instances chacune dans la requête. Les valeurs __VIEWSTATE sont identiques et je peux décoder le contenu (donc je suppose que l'échec est dû à la présence de deux valeurs, et non à une erreur dans l'une d'entre elles). Les deux valeurs __EVENTVALIDATION sont différentes mais les deux sont valides (c'est-à-dire qu'elles décodent) et les autres champs __EVENT sont vides.

Si je supprime les UpdatePanels du contrôle alors tout fonctionne "OK" - évidemment il n'y a pas de mise à jour partielle de la page AJAX maintenant ce qui n'est pas idéal. Si je désactive Jscript dans mon navigateur avec les UpdatePanels dans le code, alors tout est OK. Quelqu'un peut-il nous éclairer sur ce point ou me diriger dans la bonne direction? Je n'ai plus d'idées maintenant et si je ne peux pas le trier, je vais devoir enlever les UpdatePanels et voir si nous pouvons vivre avec le résultat, pas idéal.

[Mise à jour 14-02-2012] J'ai navigué sur le Web mais je n'ai pas vraiment trouvé quelqu'un avec le même problème. Je pensais avoir frappé l'or with this post mais encore une fois cela n'a fait aucune différence à mon problème. Toutes les indications sont que AJAX sur Sitecore devrait fonctionner correctement mais je suppose que nous devons avoir un problème de configuration. Le problème est que je ne suis pas un développeur Sitecore et actuellement je n'ai pas accès à un (congé annuel!)

+0

Veuillez fournir un échantillon de code. En outre, utilisez-vous les UC comme UCs ou sont-ils des sous-couches Sitecore? –

+0

Fournir un échantillon de code peut être un problème en raison du contenu - Je cherche à créer un contrôle factice pour voir si je peux le reproduire et ensuite je peux publier ce code. Les contrôles ont été développés comme s'ils étaient des contrôles usuels "normaux" - je n'ai fait aucun compte spécial de Sitecore. – DilbertDave

+0

Les UC sont-ils utilisés dans les sous-couches Sitcore? C'est-à-dire, avez-vous un sous-dénombrement qui peut faire référence à un ou plusieurs UC personnalisés qui posent problème? –

Répondre

1

Deux champs __VIEWSTATE ressemble beaucoup à deux éléments form dans la page, peut-être à la suite de quelques interactions jQuery ou AJAX.

Ce message semble similaire: "Invalid Character in Base-64 String" using ASP.NET and C#

Utilisez-vous ASP.NET AJAX? J'examinerais exactement ce que le JavaScript fait pour le DOM - il est probable qu'il insère l'élément supplémentaire form.

+0

J'utilisais ASP.NET AJAX mais je ne voyais pas d'éléments 'form' en double.Je suis passé de ce client maintenant (je suis un pigiste) mais je vais les renvoyer à cette réponse pour voir si cela jette une lumière sur le problème. – DilbertDave