2012-04-25 76 views
1

我想使用PageMethods從服務器端調用一個函數,但是我得到一個錯誤,PageMethods未定義。pagemethods是未定義的 - 我相信一切都應該沒問題

以下是我已經投入HTML

  <asp:ScriptManager ID="ScriptManager1" runat="server" 
    EnablePageMethods="True"> 

,這裏是從後面的代碼的功能。

<System.Web.Services.WebMethod()> _ 
Public Function LoadChild(ByVal EntityID, ByVal EntityCat, ByVal lnType, ByVal FullExpand, ByVal lnEquip, ByVal lnTemplate) As String 

這裏是對使用頁面方法的函數的調用。

PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0); 

任何人都可以看到爲什麼我會繼續得到一個PageMethods未定義的錯誤?謝謝。

編輯 - 部分問題可能是因爲函數不共享,但是當共享被放入時,我在大約15個地方得到這個錯誤。 - 這是指我正在使用的會話 - 這是正在使用的會話中顯示錯誤的片段。

prm4.Value = Session.Item("user_id") 

我得到了下面的錯誤信息下劃線的話會話 - 關於如何解決這個問題的任何建議?這可以一起解決整個問題。

錯誤305無法從共享方法或共享成員初始值設定項中引用類的實例成員,而沒有該類的顯式實例。

+0

您是否驗證過網頁中包含ASP.NET Ajax腳本?此外,您的電話在收錄後發生? – Tejs 2012-04-25 17:22:22

+0

我如何檢查以確保包含這些內容?對不起,這是我第一次使用頁面方法,並且我已經從這裏接受了說明http://www.codeproject.com/Articles/180355/Calling-a-code-behind-function-from-JavaScript – njj56 2012-04-25 17:27:03

+0

使用Fiddler以及一個類似Firefox的FireBug,IE的F12開發工具,Chrome瀏覽器的Inspect Page等頁面檢測工具... – Tejs 2012-04-25 17:27:36

回答

6

頁面方法應該是靜態(C#)/共享(VB.NET)方法。否則它不起作用。 是的,你不能在靜態方法中引用實例屬性。要獲得Session對象,您可以使用HttpContext.Current.Session

+0

非常感謝,我現在能夠使我的功能共享和使用會話。這工作。 – njj56 2012-04-26 15:27:43