ria*_*ria 4 .net asp.net ajax master-pages pagemethods
我正在设置PageMethods以使用javascript访问服务器端代码.我使用firebug进行调试时收到错误"PageMethods未定义".服务器端代码也没有被触发.
我已将脚本管理器"EnablePageMethods"设置为true.我的方法是public和static,它也设置了WebMethod属性.我仍然收到上述错误.可能是因为脚本管理器位于顶级母版页中,该母版页有两个子母版页,然后我的页面被调用:
即
主母版页(带脚本管理器) - >主母版页 - >辅助母版页 - >我的页面 - >我的用户控件(具有WebMethod)
层次结构是否可能导致此问题?
这是web方法
[System.Web.Services.WebMethod]
public static void AddNote(string t)
{
int propid = 1;
if (propid > 0)
{
//Call my method
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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);
}
Run Code Online (Sandbox Code Playgroud)
这就是我所说的:
<a href="#" class="btngeneral" onclick="javascript:editNodes(2);">Save</a>
Run Code Online (Sandbox Code Playgroud)
hea*_*150 16
页面方法无法在母版页或用户控件中使用.
如果将方法向上移动一级到您的页面,它应该可以工作.
从来没有真正得到这个问题的明确答案.
我怀疑它是否与aspx页继承自Page类并且ascx控件继承自UserControl类这一事实有关.至于为什么我不太确定.
我个人会使用通用处理程序(.ashx)页面并通过javascript调用它.
Bra*_*der 11
设置EnablePageMethods ="true"
<ajaxToolkit:ToolkitScriptManager ID="scriptManager"
runat="server"
AsyncPostBackTimeout="99999999"
EnablePageMethods="true" />
Run Code Online (Sandbox Code Playgroud)
我希望这对你有用
| 归档时间: |
|
| 查看次数: |
25423 次 |
| 最近记录: |