asp.net:__ doPostBack有时候没有呈现

时间:2009-01-26 19:04:12

标签: asp.net webforms

我们上次发生了奇怪的错误。 ___doPostBack未定义。

我们正在构建相当高级的网站,但不会使用回发。使用回发的地方之一是ASP.NET登录状态控件。

它是概率性的,有时是渲染的,有时是 - 不是。对于IE浏览器,它的工作效果非常好,但是从FireFox开始,很有可能不会在页面源中使用doPostBack。

有什么想法吗?

PS:此外,错误只发生在使用Windows 2003和Windows的实时环境中。 IIS 5.0,dotnet框架是3.5

可以因为我在页面级别使用OutputCache吗?

4 个答案:

答案 0 :(得分:5)

刚好发生在我们身上:当googlebot或任何其他机器人在常规用户面前点击您的网页时,该网页会被缓存而不会有任何回发选项。

我们做了一个简单的黑客,如果request.browser.javascript为false,则使用不同的outputcacheprofile(asp.net将页面的不同版本发送给那些浏览器/ crawler / bot)

答案 1 :(得分:2)

我遇到了同样的问题,但我意识到当服务器控件不需要时,ASP.NET不会呈现__doPostback。

当我放置需要__doPostback的gridview或linkbutton时,ASP.NET会渲染它。

答案 2 :(得分:1)

是的,它可能与输出缓存有关,请将其注释掉并再试一次

答案 3 :(得分:0)

通常,当您在页面某处出现格式错误的javascript时(通常在__dopostback函数之前),就会发生这种情况。

您是否查看过页面源并查看__dopostback函数是否实际在页面中呈现,无论您是否收到错误?