2012-04-25 51 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

相关问题