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呼び出しの場合、「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');
}
});
于 2012-12-04T16:15:49.030 に答える