サーバー側のWebメソッドと対話するjqueryがあります。Webメソッドは、jqueryから文字列'memID'を受け取り、それに基づいてSQLクエリを実行します。次に、クラスを作成します:-
public class Member
{
// Objects of Member. //
public string id { get; set; }
public string HPCode { get; set; }
public string OPfromDate { get; set; }
public string OPthruDate { get; set; }
public Member(string ID, List<string> hpCode, List<string> opfromDate, List<string> opthruDate)
{
id = ID;
for (int j = 0; j < hpCode.Count; j++){ HPCode = HPCode + (hpCode)[j] + '*' };
for (int j = 0; j < opfromDate.Count; j++){OPfromDate = OPfromDate + (opfromDate)[j] + '*' };
for (int j = 0; j < opthruDate.Count; j++){OPthruDate = OPthruDate+ (opthruDate)[j] + '*' };
}
}
このクラスは、SQLクエリの結果をクライアント側に返すために使用されます。-
return JsonConvert.SerializeObject(member);
ブレークポイントを使用してクライアント側でチェックしましたが、実際に戻り値を取得しています。ただし、これらの値を解析してjavascript側の変数に格納し、クライアント側の機能に使用できるようにするための最良の方法がわかりません。
// Ajax function that sends member ID from client side to server side without a post back.
function ajax()
{
$.ajax
({
url: 'Default.aspx/MyMethod',
type: 'POST',
dataType: "json",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ memID: mem_ID }),
success: onSuccess,
fail : onFail
});
}
// If client-to-server communication is successful.
function onSuccess(data)
{
confirm(data.d);
var returnedstring = (data.d);
var jsondata = $.parseJSON(data.d);
}
では、「データ」を解析するにはどうすればよいですか?eval関数はありますか?または関数を解析しますか?
Webの例はありますか?これまでは、クライアント側に1つの値しか返さなかったため、簡単に取得できましたが、現在は複数の値と混同されています。
アップデート:-
私はJavaScript側でこれをやってみました:-
var returnedstring = (data.d);
var member = data.d.id;
var Hp = data.d.HPCode;
ただし、ブレークポイントを使用してマウスでカーソルを合わせると、メンバーとHPが未定義として表示されますが、返された文字列にはすべて正しい値があります。
解決策(回答で提案されている他の方法を理解できませんでしたが、これは私にとってはうまくいきます):-
function onSuccess(data)
{
// stores entire return in one string.
var returnedstring = (data.d);
// parses json returned data
var jsondata = $.parseJSON(data.d);
var member = jsondata.id;
var HpCode = jsondata.HPCode;
}