2009-01-26 8 views
3

Nous avons eu une erreur étrange les derniers jours. ___doPostBack est indéfini.asp.net: __doPostBack pas parfois rendu

Nous construisons un site Web assez avancé, mais sans beaucoup utiliser les publications. Un des endroits où la publication est utilisée est le contrôle ASP.NET Login Status.

Il est probabalystic, parfois il est rendu, parfois - pas. Pour IE, Chrome fonctionne plutôt bien, mais à partir de FireFox, il est très possible de ne pas avoir doPostBack dans la source de la page.

Des idées?

PS: En outre, l'erreur ne se produit que sur l'environnement en direct, qui utilise Windows 2003 & IIS 5.0, le cadre dotnet est de 3,5

Peut-être parce que je suis en utilisant OutputCache au niveau de la page?

Répondre

1

Oui, il est peut-être sur le cache de sortie, en commentaire et essayez à nouveau s'il vous plaît

+0

Page Outputcache peut vraiment conduire à ne pas rendre la fonction doPostBack – st78

0

Cela se produit généralement lorsque vous avez javascript malformé quelque part sur la page (généralement, avant que la fonction __doPostBack).

Avez-vous consulté la source de la page et vérifié si la fonction __dopostback est réellement affichée dans la page, que vous receviez l'erreur ou non?

5

Il nous vient de nous arriver: Lorsque googlebot ou tout autre bot atteint votre page avant un utilisateur normal, la page est mise en cache sans aucune option de publication.

Nous avons fait d'un simple hack, en utilisant différents un OutputCacheProfile si le request.browser.javascript est faux (asp.net envoie différentes versions de la page à ces navigateurs/crawlers/bots)

+1

Si je pouvais voter 10 fois, je le ferais! Il nous est également arrivé, et jusqu'à présent, il semble que ce soit le coupable. Merci pour l'explication détaillée - je ne suis pas sûr quand (ou si) cela m'aurait frappé ... –

2

J'ai eu le même problème , mais j'ai réalisé que ASP.NET ne rend pas __doPostback lorsque les contrôles serveur n'en ont pas besoin.

Lorsque je mets un gridview ou un linkbutton qui a besoin de __doPostback, ASP.NET l'a rendu.

+0

Vous avez raison. Il semble que tous les contrôles nécessitant doPostBack se trouvent dans les contrôles utilisateur avec outputcache dans mon cas. – st78

Questions connexes