gpt4 book ai didi

javascript - 从asp.net webservice解析Json数据并将其填充到asp.net下拉列表中

转载 作者:行者123 更新时间:2023-12-03 02:32:44 24 4
gpt4 key购买 nike

我正在尝试填充从我的网络服务返回为 JSON 的 asp.net 下拉列表。

网络服务

 [WebMethod(EnableSession = true)]
public string GetActiveDepositAccountsForLoanAlert(string customerId)
{
var data = BusinessLayer.SMS.SmsSetup.GetActiveDepositAccountsForLoanAlert(customerId.ToLong());
var json = new JavaScriptSerializer().Serialize(data);
return json;
}

网络服务返回

[{"AccountNumber":"NS-0000092"},{"AccountNumber":"6MR-0000002"},{"AccountNumber":"1YFD-0000007"}]

我正在从 ajax 调用中调用数据并将其填充到我的下拉列表中。

Ajax 调用

 function GetActiveDepositAccounts(customerrId) {
var customerId = $('#CustomerIdHiddenField').val();
var data = { customerId: $('#CustomerIdHiddenField').val() };
var json_data = JSON.stringify(data);
$.ajax({
type: "POST",
url: "/WebMethods/Misc.asmx/GetActiveDepositAccountsForLoanAlert",
data: json_data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});

}
function OnSuccess(r) {
var depositRadioList = $("[id*=DepositAccountDropDownList]");
depositRadioList.empty().append('<option selected="selected" value="0">Please select</option>');
for (var i = 0; i < r.d.length; i++) {
depositRadioList.append('<option>' + r.d[i] + '</option>');
}
}

数据以 json 形式填充。在我的下拉列表中,我只希望帐号为NS-0000092。我在下拉列表中获取了整个 json。我已经搜索并看到了很多与此 Json 解析相关的问题。但是无法掌握这个。这不是我没有尝试过,我是新手,所以之前将其标记为重复,请看一下代码。谢谢。

最佳答案

我无法摆脱这种感觉,因为您的 GetActiveDepositAccountsForLoanAlert 返回的是字符串而不是对象,因此 r.d 被视为字符串。尝试以下两件事之一。要么:

  1. 更改方法签名以返回数据类型,并且不要使用 JavaScriptSerializer。或者,
  2. 在 OnSuccess 函数中,添加 var data = JSON.parse(r.d) 并在 for 循环中使用该变量。

关于javascript - 从asp.net webservice解析Json数据并将其填充到asp.net下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com