2009-01-26 72 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