.net - PageMethods 未定义

标签 .net asp.net ajax master-pages pagemethods

我正在设置 PageMethods 以使用 javascript 访问服务器端代码。当我使用 firebug 进行调试时,我收到错误“PageMethods 未定义”。服务器端代码也没有被触发。

我已将我的脚本管理器“EnablePageMethods”设置为 true。我的方法是公共(public)和静态的,它也设置了 WebMethod 属性。我仍然收到上述错误。可能是因为脚本管理器位于具有两个子母版页的顶级母版页中,然后我的页面被调用:

IE。

主母版页(带有脚本管理器)-> 主母版页-> 辅助母版页-> 我的页面-> 我的用户控件(具有 WebMethod)

层次结构是否可能导致此问题?

这是网络方法

 [System.Web.Services.WebMethod]
public static void AddNote(string t)
{
    int propid = 1; 
    if (propid > 0)
    {
     //Call my method
    }
}

这是我的 JavaScript 代码:
  function editNodes(t) {
    alert('test1');
    alert(t);
    PageMethods.AddNote(t,OnSuccess,OnFailure);
    alert('method called');
}
function OnSuccess() { 
    alert('Success'); 
    if (!navigator.appName == 'Microsoft Internet Explorer') {
        window.location.href = window.location.href;
    }

}
function OnFailure(error) {
    alert('Error:' + error);
}    

这就是我所说的:
   <a href="#" class="btngeneral" onclick="javascript:editNodes(2);">Save</a>

最佳答案

页面方法在母版页或用户控件中都不起作用。

如果您将方法上移一级到您的页面,它应该可以工作。

从来没有真正能够在这个问题上得到明确的答案。

我怀疑这与 aspx 页面继承自 Page 类和 ascx 控件继承自 UserControl 类的事实有关。至于为什么会这样,我不太确定。

我个人会使用通用处理程序 (.ashx) 页面并通过 javascript 调用它。

关于.net - PageMethods 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5818265/

相关文章:

.net - 使用 lambda 的 ObservableCollection 切片

c# - C# 中的 BigInteger 除法

javascript - 加载 asp.net webform 时如何停止运行 javascript 函数?

asp.net - 将 OAuth2/OpenID2 升级到 OpenID Connect

php - ajax请求未定义

java - 如何在 html 中打印 servlet?

C# 3 个新功能帖子(与 .Net 3.5 功能无关)

.net - Windows 窗体中是否有免费提供的类似 "Spinning Wheel"的控件?

c# - OnItemUpdated 事件究竟何时在 ASP.NET 的 FormView 中触发?

javascript - 提交表单而不重定向