首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义PageMethods

未定义PageMethods
EN

Stack Overflow用户
提问于 2011-04-28 20:02:03
回答 3查看 26.6K关注 0票数 4

我正在设置PageMethods以使用javascript访问服务器端代码。当我使用firebug进行调试时,我收到错误消息"PageMethods is not defined“。服务器端的代码也没有被触发。

我已经将我的脚本管理器"EnablePageMethods“设置为true。我的方法是公共的&静态的,并且还设置了WebMethod属性。我仍然收到上面的错误。会不会是因为脚本管理器位于顶级母版页中,该母版页有两个子母版页,然后我的页面被调用:

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

有没有可能是层次结构导致了这个问题?

这是webmethod

代码语言:javascript
复制
 [System.Web.Services.WebMethod]
public static void AddNote(string t)
{
    int propid = 1; 
    if (propid > 0)
    {
     //Call my method
    }
}

这是我的javascript代码:

代码语言: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);
}    

这就是我所说的:

代码语言:javascript
复制
   <a href="#" class="btngeneral" onclick="javascript:editNodes(2);">Save</a>
EN

回答 3

Stack Overflow用户

发布于 2011-04-28 20:52:54

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

如果你将这个方法上移到你的页面上,它应该可以工作。

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

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

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

票数 16
EN

Stack Overflow用户

发布于 2012-06-08 19:18:43

将EnablePageMethods=设置为“true”

代码语言:javascript
复制
 <ajaxToolkit:ToolkitScriptManager ID="scriptManager" 
                               runat="server" 
                               AsyncPostBackTimeout="99999999"
                               EnablePageMethods="true" />

我希望这对你有用。

票数 11
EN

Stack Overflow用户

发布于 2011-04-28 20:49:09

据我所知,usercontrol上的PageMethods不受支持,下面的线程似乎证实了

http://forums.asp.net/p/977525/1242935.aspx

ASP.NET AJAX Page Methods from UserControl

但我认为可以有一个变通方法(不确定这在您的场景中是否有效)。您可以在页面的代码中编写一个OneLine PageMethod,在该代码背后将实际调用控件的页面方法。现在,您可以从aspx调用页面的方法,一切准备就绪。

或者,您也可以使用此替代Alternate way to use page method inside user control asp.net

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5818265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档