代码之家  ›  专栏  ›  技术社区  ›  Just Fair

获取JSON结果ASP.NET核心2.0

  •  1
  • Just Fair  · 技术社区  · 6 年前

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

    HTMLs选择:

    <select id="ddlCustomers"></select>
    

    AJAXs电话:

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

    它命中控制器,但返回/填充未定义的select。

    请注意:这是一个WEB应用程序,而不是WEB API。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Å těpán Zechner    6 年前

    $('#ddlCustomers').append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');
    
        2
  •  1
  •   Just Fair    6 年前

    根据您得到的响应,您应该更改以下内容:

    '<option value=' + data[i].Value + '>' + data[i].Text + '</option > '
    

    '<option value=' + data[i].value + '>' + data[i].text + '</option > '
    

    顺便说一下,您不必选择id为的HTML元素 ddlCustomer 在for循环的每个步骤中。你可以用 ddlCustomers

     for (var i = 0; i < data.length; i++) {
         ddlCustomers.append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');
     }