C# 在ASP.NET CORE 2.0中获取JSON结果

C# 在ASP.NET CORE 2.0中获取JSON结果,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,控制者的方法: [HttpGet] public ActionResult GetItem() { List<SelectListItem> drop = new List<SelectListItem> { new SelectListItem{Value="Superman",Text="Superman"}, new SelectListItem{Value="Batman",Text="Batman"},

控制者的方法:

[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>
阿贾克斯的呼吁:

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

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

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

JS区分大小写,请尝试

$('#ddlCustomers').append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');

您检查过ajax调用的响应了吗?在chrome中,您可以按F12键,以显示开发者工具。然后刷新页面,在网络选项卡上,您将看到ajax调用请求和响应。响应包含什么?@Christos响应包含:[{禁用:false,组:null,选定:false,文本:超人,值:超人},]0:{禁用:false,组:null,选定:false,文本:超人,值:超人}1:{禁用:false,组:null,选定:false,文本:蝙蝠侠,值:蝙蝠侠}2:{禁用:false,组:null,所选:false,文本:WonderWomen,值:WonderWomen}谢谢你,它现在起作用了!你就是那个人!不管怎样,有更好的安全方法吗?@BerBar欢迎你。我很高兴我帮了忙。没关系。这是获取方法并调用安全方法避免被第三方使用吗?不,如果有人检查网络流量,当你使用开发工具调试问题时,会很容易看到相应的调用。然后使用相应的绝对URLhttps://domainname/Usuario/GetItem 将获取相应的数据。显然,我们是在为用户说话,我们在公共网络中看到您的应用程序。如果您在专用网络中部署您的应用程序,并且只允许访问此网络中的资源,则只能执行此操作从这个私人网络内的用户那里。我明白了重点。我将对这件事做一个调查。再次感谢你!谢谢你@Štěpán Zechner!
 for (var i = 0; i < data.length; i++) {
     ddlCustomers.append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');
 }
$('#ddlCustomers').append('<option value=' + data[i].value + '>' + data[i].text + '</option > ');