我们上次发生了奇怪的错误。 ___doPostBack未定义。
我们正在构建相当高级的网站,但不会使用回发。使用回发的地方之一是ASP.NET登录状态控件。
它是概率性的,有时是渲染的,有时是 - 不是。对于IE浏览器,它的工作效果非常好,但是从FireFox开始,很有可能不会在页面源中使用doPostBack。
有什么想法吗?
PS:此外,错误只发生在使用Windows 2003和Windows的实时环境中。 IIS 5.0,dotnet框架是3.5
可以因为我在页面级别使用OutputCache吗?
答案 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函数是否实际在页面中呈现,无论您是否收到错误?