为什么 PageMethods 对象未定义?
Why is PageMethods object undefined?
我已经阅读了几个类似问题的答案,其中 none 个回答了我的问题。我已经尝试了我能想到的一切。这是我的代码的样子:
<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
,一切都很好。
我已经阅读了几个类似问题的答案,其中 none 个回答了我的问题。我已经尝试了我能想到的一切。这是我的代码的样子:
<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
,一切都很好。