首页 > 解决方案 > 在 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。

标签: c#asp.netasp.net-mvc

解决方案


根据您收到的回复,您应该更改以下内容:

'<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 > ');
 }

推荐阅读