静的Webメソッドでは、データベースから選択したBankidとBanknameを辞書に入力します。Idはキーに移動し、値は値の部分に移動します。したがって、私の辞書には約20のキーと値のペアがあります。次に、この辞書をajax呼び出しに戻します。
$.ajax({
type: 'POST',
url: 'AJAX.aspx/Banks',
data: '',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data)
{
$.each(data.d, function ()
{
$("#testDiv").append(this.Key + " " +this.Value + "<br/>");
});
},
error: function (x, e)
{
alert("The call to the server side failed. " + x.responseText);
}
});
上記の場合、20行のundefinedundefinedを取得します。しかし、これから.Keyと.Valueの両方を削除すると、値が取得されるだけなので、銀行名が表示されます。選択要素に値を入力するため、キーと値の両方が必要です。値のキーと内部htmlの値です。私のwebmethodを見たい場合は、ここにあります:
[WebMethod]
public static Dictionary<string, string> Banks()
{
Dictionary<string, string> dict = new Dictionary<string, string>();
DatabaseProvider provider = GetDatabaseProvider();
provider.AddOutParameter("V_CUR", OracleType.RefCursor);
DataTable dt=provider.SelectDataTable("AGAPUS.PAYMENT.SP_BANKS", CommandType.StoredProcedure);
foreach (DataRow row in dt.Rows)
{
dict.Add(row["PAYMENTTYPE"].ToString(), row["PAYMENTTYPEID"].ToString());
}
return dict;
}