在用户控件中写入页面方法有效吗

本文关键字:方法 有效 用户 控件 | 更新日期: 2023-09-27 18:26:07

我正在使用.net/c#开发一个web应用程序。我有一个用户控件,我想使用javascript从客户端调用它的页面方法。然而,我发现如果我把页面方法放在父页面中,它可以被调用,但如果我把方法放在用户控制代码文件中,它就不能被调用。但由于某些原因,我不能控制父页面,但可以完全控制用户控制。如何克服这一限制?

我使用如下javascript调用pagemethod:

jQuery("[id$='tb_UserName']").blur(function() {
var login = jQuery("[id$='tb_UserName']").val();
    PageMethods.SearchUserName(login, SearchUserNameCallback);
});
function SearchUserNameCallback(result) {
    alert(result);
}

Page方法SearchUserName定义如下:

[WebMethod]
public static string SearchUserName(string name)
{
    ...
}

这种方法没有问题,只是它的位置有很大的不同。如果我把它放在用户控制代码文件中,错误会显示为"Pagemethods is undefined"。但我无法控制父文件,只能在我的测试环境中进行。

在用户控件中写入页面方法有效吗

它被称为Page方法,因为它们只存在于页面级别。如果您需要可以存在于不同作用域中的东西,则应该使用ASMX或WCF Web服务,并将它们作为ServiceReference包含在ScriptManager中。