为什么页面方法对象未定义

Why is PageMethods object undefined?

本文关键字:对象 未定义 方法 为什么      更新时间:2023-09-26

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

<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调用的服务器端函数:

 <System.Web.Services.WebMethod()>
Protected Shared Sub CheckDBForCodes() 
    `search DB for codes
End Sub

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

未定义 PageMethods 对象的原因是服务器端函数的访问修饰符设置为 Protected 。我把它改成Public,世界一切都很好。