c# - 在 ASP.NET CORE 2.0 中获取 JSON 结果
问题描述
控制器的方法:
[HttpGet]
public ActionResult GetItem()
{
List<SelectListItem> drop = new List<SelectListItem>
{
new SelectListItem{Value="Superman",Text="Superman"},
new SelectListItem{Value="Batman",Text="Batman"},
new SelectListItem{Value="Wonderwoman",Text="Wonderwoman"}
};
return Json(drop);
}
HTML 的选择:
<select id="ddlCustomers"></select>
AJAX 的呼吁:
var ddlCustomers = $("#ddlCustomers");
ddlCustomers.empty().append('<option selected="selected" value="0" disabled = "disabled">loading.........</option>');
$.ajax({
type: "GET",
url: "/Usuario/GetItem",
dataType: 'JSON',
contentType: "application/json",
success: function (data) {
alert(data);
for (var i = 0; i < data.length; i++) {
$('#ddlCustomers').append('<option value=' + data[i].Value + '>' + data[i].Text + '</option > ');
}
}
});
它击中了控制器,但将选择返回/填充为未定义。
有什么帮助吗?谢谢!
请注意:这是一个WEB APP而不是WEB API。
解决方案
根据您收到的回复,您应该更改以下内容:
'<option value=' + data[i].Value + '>' + data[i].Text + '</option > '
有了这个:
'<option value=' + data[i].value + '>' + data[i].text + '</option > '
顺便说一句,您不必ddlCustomer
在 for 循环的每个步骤中选择带有 id 的 HTML 元素。您可以使用ddlCustomers
持有对要附加选项的元素的引用的变量
for (var i = 0; i < data.length; i++) {
ddlCustomers.append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');
}