2009-01-26 27 views
3

我们最近几天得到了奇怪的错误。 ___doPostBack未定义。asp.net:__doPostBack有时候没有呈现

我们正在建设相当先进的网站,但不使用回传太多。回发使用的地方之一是ASP.NET登录状态控制。

这是probabalystic,有时它被渲染,有时 - 没有。对于IE浏览器来说,它的工作方式大部分都很好,但是从FireFox来看,在页面源代码中不会有doPostBack。

任何想法?

PS:另外,发生错误只在实际环境中,它使用的是Windows 2003 & IIS 5.0,DOTNET框架3.5

难道是因为我使用的OutputCache页面上水平?

回答

1

是的,它可能是对输出缓存,其注释掉,然后再试一次请

+0

Page Outputcache确实可能导致不能渲染doPostBack函数 – st78 2009-01-27 14:54:40

0

这通常发生在你的javascript格式不正确的地方在页面上(通常是__doPostBack函数之前)。

您是否查看过页面源代码并查看__dopostback函数是否实际呈现在页面中,而不管您是否收到错误?

5

刚刚发生在我们身上:当googlebot或任何其他机器人在普通用户面前点击您的页面时,该页面将被缓存,而无需任何回发选项。

我们做了一个简单的黑客,使用不同outputcacheprofile如果request.browser.javascript是假的(asp.net发送不同版本的页面以及这些浏览器/爬虫/机器人)

+1

如果我可以投票10次,我会!刚刚发生在我们身上,到目前为止,看起来这是罪魁祸首。感谢您的详细解释 - 我不确定何时(或如果)它会发生在我身上... – 2009-08-11 13:39:58

2

我有同样的问题,但是我意识到当服务器控件不需要它时,ASP.NET不会渲染__doPostback。

当我把需要__doPostback的gridview或linkbutton,ASP.NET呈现它。

+0

您是对的。似乎所有需要doPostBack的控件都位于带有outputcache的用户控件中。 – st78 2010-10-24 17:40:40

相关问题