C# 根据输入的zipcode生成城市状态下拉列表

C# 根据输入的zipcode生成城市状态下拉列表,c#,jquery,asp.net-ajax,C#,Jquery,Asp.net Ajax,我有两个下拉列表城市和州以及邮政编码文本框。我需要根据输入的邮政编码生成城市和州下拉列表。当用户输入邮政编码时,我将邮政编码传递给API以获取州/城市列表。 使用下面的代码,我可以从API中获取数据,可以在控制台中查看州/市,但无法在下拉列表中显示。我不确定我错过了什么。如何在下拉列表中显示数据 API控制器: public class Getstatelist : ApiController { // GET api/Getstatelist/5 public List<

我有两个下拉列表城市和州以及邮政编码文本框。我需要根据输入的邮政编码生成城市和州下拉列表。当用户输入邮政编码时,我将邮政编码传递给API以获取州/城市列表。 使用下面的代码,我可以从API中获取数据,可以在控制台中查看州/市,但无法在下拉列表中显示。我不确定我错过了什么。如何在下拉列表中显示数据

API控制器:

public class Getstatelist : ApiController
{

    // GET api/Getstatelist/5
    public List<CityState> GetCityState(string zipEntered)
    {
        var list = new List<CityState>();

        if (string.IsNullOrEmpty(zipEntered) || zipEntered.Length < 2)
            return list;

        zipEntered += "%";

        using (var connection = new OracleConnection(ConfigurationManager.ConnectionStrings["MY_DB_CONNECTION_STRING"].ConnectionString))
        {
            connection.Open();

            var sqlQuery = "select state from state_city_data where zip like :zipEntered";
            using (var command = new OracleCommand(sqlQuery, connection))
            {
                command.BindByName = true;
                command.Parameters.Add("zipEntered", OracleDbType.Varchar2).Value = zipEntered;

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        list.Add(new CityStateZip
                        {
                            State = reader["STATE"] != DBNull.Value ? Convert.ToString(reader["STATE"]) : null,
                        });
                    }
                }
            }
        }

        return list;
    }
}
$document.readyfunction { $zip.keyup函数{ var el=$this; 如果el.val.length==5{ $.ajax{ 类型:'GET', url:../api/Getstatelist/+el.val, 成功:函数html{ console.loghtml; $'state'.htmlhtml; } }; }否则{ $'state'.html'首先输入邮政编码'; } }; }; 先选择城市 城市 选择状态 状态 拉链
要填充状态下拉列表,您需要在ajax中修改成功回调,如下所示:

$.each(html,function(key,value){
$('#state').append($('<option></option>').val(value.State).html(value.State));
});
对于城市下拉列表也类似:

$.each(html,function(key,value){
$('#city').append($('<option></option>').val(value.City).html(value.City));
});

我可以在控制台中看到州/市-因为您有一个console.loghtml;呼叫-但我无法在下拉列表中显示。我不确定我错过了什么要将值实际添加到控件中的代码?您必须以html格式准备响应选择选项,并且必须将其附加到html文件中。示例响应格式:res=