1

我有一个名为 getPersonInfo 的方法,它的标题如下所示:

[WebMethod]
public static Hashtable getPersonInfo(int personID)
{
}

我遇到的问题是这种方法无法访问我的 asp.net 控件。所以我当然删除了“静态”关键字。但是后来我的 ajax 调用失败了,因为它不再是静态方法。有什么建议么?

编辑:在阅读和搜索了一下之后,我意识到它不起作用。我要问的是是否有另一种方法可以获得最终结果,因为现在我不确定如何做到这一点。

4

2 回答 2

4

这基本上是不可能的。

AJAX 方法不运行页面生命周期,因此控件实际上并不存在于服务器上。

相反,您需要在客户端上操作页面。

于 2012-12-04T15:56:57.200 回答
1

您需要将控件的值从客户端传递给 getPersonInfo 方法。例如:如果它的 JQuery ajax 调用,可以使用“数据”属性传递附加参数。当然,同样需要相应地修改 getPersonInfo 方法签名。

$.ajax({
url: 'adduser.aspx/getPersonInfo',                        
data: { personID: $('txtPersonId').val() }, //pass additional parameters here
type: "POST",
success: function (template) {
alert('success'); },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('error');
}
});
于 2012-12-04T16:15:49.030 回答