2011-02-03 100 views
0

這是一個奇怪的。Asp.net AJAX工作 - 但不工作

長話短說:用AJAX寫了一個usercontrol。使用返回的智能部分v1.3將其插入sharepoint 2007(開發)網站。

完美的作品!

將它全部移到生產服務器 - 修改web.config文件,使其完全像開發網站。它不工作。我很確定ajax實際上工作,因爲updateprogress正在工作,並且我的ajax_endrequest js處理程序中出現錯誤 - 在我的第二個ajax請求之後(如在 - 我按一次按鈕一次什麼都沒有,我又按它)我得到:

「無效的回發或回調參數事件驗證使用配置中啓用了...。」

我有javascript__doPostback,這似乎工作一個LinkBut​​ton - 在至少它正在運行代碼 - 但它不更新updatepanel中的任何內容。

它不工作的另一個例子: 我有一個選項卡面板和一個列表框設置爲自動完成。在selectedindexchanged中,我更改了活動選項卡面板 - 但這不起作用。當我這樣做兩次時,我在我的JavaScript結束請求處理程序中返回上述相同的錯誤。

任何人都可以指向我的任何方向!? :)

+1

您是否嘗試過使用Fiddler或類似命令查看HTTP流量? – Xhalent 2011-02-03 13:12:31

+0

無論我做什麼,提琴手實際上都沒有顯示任何活動。奇怪 - 因爲我在endrequest中遇到異常? – Dynde 2011-02-03 13:46:54

+0

你可以給我們_long_故事,並告訴我們一些代碼?我知道這確實是針對原則,但是上下文覆蓋總是有幫助 – 2011-02-03 13:59:50

回答

1

好了...

我要發泄。這個問題花了我太多的時間來解決。

問題出在sharepoint的masterpage上。由於我不使用默認的母版,顯然這行:

<WebPartPages:SPWebPartManager runat="server"/> 

當時以外的標記 - 當它向下移動裏面(這是在默認母版,我用我的機器上) ,一切都很好 -

我討厭有時候分享點...

0

我認爲,因爲你使用AJAX,你遇到了事件驗證的問題。由於JavaScript是觸發事件,因此ASP.NET無法驗證觸發事件處理程序的來源,從而導致左右錯誤。

您可以禁用事件驗證globaly:

<system.web> 
    <pages enableEventValidation="false"/> 
</system.web> 

或單頁上:

<%@ Page EnableEventValidation="false" ... %> 

這同樣適用於視圖狀態驗證......上控制了JavaScript交互過上.. 。下面是修復它的代碼:

web config:

<pages enableViewState="false" /> 

或單頁上:

<%@ Page ... EnableViewState="false" %>