Javascript 为什么PageMethods对象未定义?

Javascript 为什么PageMethods对象未定义?,javascript,vb.net,pagemethods,Javascript,Vb.net,Pagemethods,我读过几个类似问题的答案,但没有一个能回答我的问题。我已经尝试了我能想到的一切。我的代码是这样的: <asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true"></asp:ScriptManager> <asp:TextBox ID="TextBox" runat="server" onblur="textboxOnBlur()"></asp:TextBox>

我读过几个类似问题的答案,但没有一个能回答我的问题。我已经尝试了我能想到的一切。我的代码是这样的:

<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:TextBox ID="TextBox" runat="server" onblur="textboxOnBlur()"></asp:TextBox>
<script>
     function onSuccess() {
        alert("success");
    }

    function onFailure() {
        alert("failure");
    }

    function textboxOnBlur() {
        PageMethods.CheckDBForCodes(onSuccess, onFailure);
        //alert("test");
    }

</script>

出于某种原因,我仍然收到错误消息,说PageMethods未定义。如您所见,当您从文本框中单击时,会调用
textboxOnBlur
函数。我遗漏了什么吗?

未定义
PageMethods
对象的原因是服务器端函数的访问修饰符被设置为
受保护的
。我把它改成了
Public
,整个世界都很好

未定义
PageMethods
对象的原因是服务器端函数的访问修饰符被设置为
受保护
。我把它改成了
Public
,整个世界都很好

首先,
不应该是
?@AndrewMorton我不确定。我没有在
上看到任何东西。好吧,别提这个想法,它只是我第一次发现的。我看到其他大多数教程都使用了
。起初,我认为这是因为我使用的
ScriptManager
实际上在母版页上。但是我把它从母版页上删除,放到实际的网页上,它也做了同样的事情。我被难倒了。你可能会找到合适的,而不是自己创造。这可能只是为了避免问题,或者这正是您需要的。首先,
不应该是
?@AndrewMorton我不确定。我没有在
上看到任何东西。好吧,别提这个想法,它只是我第一次发现的。我看到其他大多数教程都使用了
。起初,我认为这是因为我使用的
ScriptManager
实际上在母版页上。但是我把它从母版页上删除,放到实际的网页上,它也做了同样的事情。我被难倒了。你可能会找到合适的,而不是自己创造。这可能只是为了避免问题,也可能正是你所需要的。
 <System.Web.Services.WebMethod()>
Protected Shared Sub CheckDBForCodes() 
    `search DB for codes
End Sub