C# Can';我不能从静态方法访问asp控件,但当我删除静态时,ajax调用就赢了';行不通

C# Can';我不能从静态方法访问asp控件,但当我删除静态时,ajax调用就赢了';行不通,c#,asp.net,ajax,C#,Asp.net,Ajax,我有一个名为getPersonInfo的方法,其标题如下所示: [WebMethod] public static Hashtable getPersonInfo(int personID) { } 我遇到的问题是,此方法无法访问我的asp.net控件。所以我当然删除了“static”关键字。但是,我的ajax调用失败了,因为它不再是静态方法。有什么建议吗 编辑:在阅读和搜索了一段时间后,我意识到这是行不通的。我想问的是,是否有其他方法可以获得最终结果,目前我还不确定如何做到这一点。这从根本上

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

[WebMethod]
public static Hashtable getPersonInfo(int personID)
{
}
我遇到的问题是,此方法无法访问我的asp.net控件。所以我当然删除了“static”关键字。但是,我的ajax调用失败了,因为它不再是静态方法。有什么建议吗


编辑:在阅读和搜索了一段时间后,我意识到这是行不通的。我想问的是,是否有其他方法可以获得最终结果,目前我还不确定如何做到这一点。

这从根本上说是不可能的

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


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

这根本不可能

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


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

您需要将控件的值从客户端传递给getPersonInfo方法。例如:如果它的jqueryajax调用,那么可以使用“data”属性传递其他参数。当然,同样需要相应地修改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');
}
});

您需要将控件的值从客户端传递给getPersonInfo方法。例如:如果它的jqueryajax调用,那么可以使用“data”属性传递其他参数。当然,同样需要相应地修改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');
}
});

提示:AJAX方法必须是静态的,这是有原因的。提示:AJAX方法必须是静态的,这是有原因的。我该怎么做?你能举个例子吗?还是一个建议?看看jQuery或纯Javascript,我该怎么做?你能举个例子吗?还是一个建议?看看jQuery或纯javascript